重新排序gnu autotools链接器标志

时间:2012-11-07 17:11:50

标签: c++ linker g++ autotools compiler-flags

我正在使用gnu autotools和我的C ++项目(autotools配置是由eclipse cdt自动生成的,但我觉得这没关系)。我正在使用LLVM库,现在我遇到链接器标志顺序问题。

基本上,在构建项目时,eclipse会执行“make”。 Make执行了很多命令,但最后它按如下方式执行g ++编译器:

g++ -DPACKAGE_NAME=\"test\" -DPACKAGE_TARNAME=\"test\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"test\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"test\" -DVERSION=\"1.0\" -I.    `llvm-config --cppflags --ldflags --libs core` -g -O2 -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.cpp
mv -f .deps/test.Tpo .deps/test.Po

然后是链接器:

g++ `llvm-config --cppflags --ldflags --libs core` -g -O2   -o a.out test.o

问题是,如果参数“test.o”不在行的开头,链接器会失败,所以应该是:

g++ test.o `llvm-config --cppflags --ldflags --libs core` -g -O2   -o a.out

如何在Makefile.am或gnu autotools的任何配置文件中更改它?

1 个答案:

答案 0 :(得分:0)

我没有找到答案,但到目前为止,我发现LLVM与包含自定义自动化系统的项目模板捆绑在一起,该系统以正确的方式处理所有内容。

如果要访问模板,可以在$ LLVMSRC / projects / sample文件夹中找到它。