mac gcc编译头文件找不到解决方案

gcc编译头文件时,会找到/usr/include里的文件。

在finder前往文件夹   /usr/include

如果没有/usr/include文件夹,尝试在终端输入

xcode-select --install 


《unix网络编程》

重网上下好源码,如果make失败,参考网上的文件修改方法。

将apue.h和error.c文件全部放到/usr/include里

也可以用sudo mv apue.h /usr/include | sudo mv config.h /usr/include

make产生的链接库放入/usr/lib中

注意:添加链接库后,在编译时需要加一句 -lapue    l+头文件 表示静态链接库 unp同理 -lunp

《unix高级环境编程》

make后产生的静态链接库,需要放到/usr/lib中

unp.h 需要更改。可以参考我的博客《linux初装》

将unp.h,config.h 放入/usr/include中

编译时需要加上lunp ,因为这是静态链接库。

可以了解一下unix文件系统,各个目录的作用。

/include 有许多路径都有这个,有的是编译当前程序的头文件,有的是编译内核程序的头文件。

 /bin 存放使用者最长用的命令,如:cp、ls、cat,等等。

 /boot 启动linux时使用的一些核心文件。

 /dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。

 /etc 这个目录用来存放系统管理所需要的配置文件和子目录。 

 /home 用户的主目录,比如说有个用户叫wang,那他的目录就是/home/wang也可以用~wang来表示。

 /lib 这个目录是存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。 

/lost+found 这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所。

 /mnt 这个目录是空的,系统提供这个目录是让用户临时挂接别的文件系统。

 /proc 这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存中。 /root 系统管理员(root)的主目录,作为系统的拥有者的特权。

 /sbin s就是super user的意义,也就是说这里存放的是系统管理员使用的管理程序。

 /tmp 这个目录是存放一些临时文件的地方。

 /usr 我们用到的应用程序的文件几乎都存放这个目录下:/usr/X11R6存放X_Window的目录;/usr/bin存放着许多应用程序;/usr /sbin给超级用户使用的一些管理程序就放在这个里面;/usr/include开发和编译应用程序所需的头文件;/usr/lib存放一些常用的动态连接共享库和静态归档案库;/usr/local这是提供给一般用户的/usr目录,在这里安装软件最合适。/usr/man存放帮助文档。/usr /src开放的源代码就存在这个目录下。 /var 这个目录存放那些不断扩充的东西,为了保持usr的相对稳定,那些才、经常被修改的目录可以放在这个目录下,如/var/log日志文件。

 /SElinux 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。


比如《unix高级环境编程》《unix网络编程》的头文件分别是apue.h,unp.h,直接拖到该目录下,即可编译。

你可能感兴趣的:(linux)