LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 759|回复: 1

关于头文件的路径问题

[复制链接]
发表于 2009-4-18 00:44:23 | 显示全部楼层 |阅读模式
很多头文件的路径并不是默认路径,导致编译时找不到文件,请问有何办法解决?
举例说明
我要用 glade.h 这个头文件
他在我的机器上是在 /usr/include/libglade-2.0/glade 这个目录下(同时这个目录下还有glade_ini.h等文件),
但是即使是在 glade.h 这个文件中,对glade_ini.h的引用也是用的 #include <glade/glade_ini.h>,
这就造成一个问题,我编译的时候会提示找不到 glade_ini.h 这个文件,因为他根本不在所给定的路径下,
当然,我可以通过修改成 #include </usr/include/libglade-2.0/glade/glade_ini.h> 来解决问题,
但是现在的问题是,这个头文件还会引用很多其他头文件,而引用的路径也是由于总总原因不对(最经常的就是文件夹后面多了个版本号,比如头文件里的路径是 libname/a.h,但实际a.h的路径应该是 libname_XXXX.XXX/a.h)不过头文件确实都在 /usr/include 及其各个子目录下,
请问如何解决这种问题?真的,不至于是一个个头文件里面去改include的路径吧?
发表于 2009-4-22 20:46:17 | 显示全部楼层
头文件的搜索路径是可以在编译的时候通过编译选项的形式指定的。
  1. gcc -I/home/user1/include aa.c -o aa.out
复制代码
即可指定/home/user1/include为头文件的搜索路径。

楼上的是在用glade编程吧,那至少应该明白pkg-config相关的东西,glade相关的头文件的搜索路径可以通过以下命令获取。
  1. pkg-config libglade-2.0 --cflags
复制代码

也就是说你可以这样编译:
  1. gcc `pkg-config libglade-2.0 --cflags` myprog.c -o myprog
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表