2010-10-27 67 views
1

我已经使用这个脚本制作工具链:http://gist.github.com/403608(或多或少的修改,以得到它的工作)工具链问题:如何添加一个头文件/ lib让编译器知道在哪里找到它?

一切都安装了,现在当我尝试使用它,我得到一个错误,当我运行./configure编译它说我的C编译器不能创建可执行文件。我在想,我的编译器只是不知道在哪里寻找所有的头和库...因为他们不在/ usr /他们在/ var/sdk/usr/

有没有办法告诉我的编译器总是在/ var/sdk/usr /中查找?

+1

你想告诉这是哪个编译器? – 2010-10-27 03:31:21

回答

0

进入您的目标设置(按住Control并点击目标并选择信息)。选择“生成”选项卡,然后填写标题搜索路径以获取标题库,库搜索路径。

+0

这是linux下的所有命令行:(没有标签... – 2010-10-27 02:31:57

+0

啊。你有没有试过./configure --help?configure通常有命令行选项来指定非标准的依赖位置 – 2010-10-27 03:14:11

0

对于GCC,使用directory search options

 
    gcc -L/foo/bar/baz 
    gcc -I/foo/bar/quux 

第一个添加目录/富/酒吧/巴兹到链接器的搜索路径(库将在这里找到)。第二个将目录/ foo/bar/quux添加到目录列表中的前面以搜索标题。混合和多个-I和-L选项可以在单个调用中发生。如果使用多个“-I”,则会按从左到右的顺序搜索,然后搜索系统目录。

+0

是只为那一个编译还是做它“坚持” - 在配置GCC总是看看那里? – 2010-10-28 01:19:45

+0

@Jeremy Iglehart:只是工作一次,但你正在编译脚本或使用make或其他方法来自动执行此步骤你只需要弄清楚一次,我强烈建议不要改变你的所有时间环境,因为它在开发和生产环境之间有很大的差异。 – 2010-10-28 05:07:03

1

大多数配置脚本使用LDFLAGSCPPFLAGS环境变量来修改includes和libs的目录搜索路径。

LDFLAGS="-L/other/libs" CPPFLAGS="-I/other/includes" ./configure 

您还可以查看编译器文档,因为它们通常也有环境变量。例如,gcc在libs目录LIBRARY_PATH中查找。它也将查找包括目录CPATH

+0

我可以只改变环境变量然后像平常一样编译,它会看起来像那么只要那些环境变量设置为那个? – 2010-10-28 01:20:42

+0

这些变量只用于配置和编译时间分别。您可能需要更新ldconfig和/或LD_LIBRARY_PATH,以便运行时修改为共享库检查的目录。 – dietbuddha 2010-10-28 04:42:26