testCXXCompiler中的CMake集库搜索路径失败

时间:2012-01-09 03:33:59

标签: cmake library-path

我构建了自己的GCC和库,并将库放在/opt/gcc-4.6.2/lib中,因此一般命名的库libstdc++不会干扰系统的其他部分。这意味着我必须手动指定库搜索路径:

$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp

当试图让我的项目用CMake构建时,我似乎无法弄清楚如何告诉CMake搜索该库。 documentation表示使用CMAKE_LIBRARY_PATH,我在用于生成Makefile的行上设置:

$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \
            -DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib

然而,这在简单的程序编译测试中失败了:

# blah blah blah...

/usr/local/bin/g++-4.6.2
CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -o cmTryCompileExec
-rdynamic

/usr/bin/ld: cannot find -lstdc++

# blah blah blah...

我似乎无法找到让CMake为测试编译发出-L/opt/gcc-4.6.2/lib所需的巫术魔法(我知道{/ 1}}在项目构建之后工作。如何强制CMake使用备用库路径链接测试可执行文件?

1 个答案:

答案 0 :(得分:3)

嗯,我不熟悉gcc如何构建自己,但我想它应该知道在哪里搜索它的libs。也许你应该尝试交叉编译。

此外,CMAKE_LIBRARY_PATH对您的问题没有帮助,因为它只为CMake设置库搜索路径,而不是为编译器设置。

所以,除了将CMAKE_CXX_FLAGSCMAKE_EXE_LINKER_FLAGS设置为-L/opt/gcc-4.6.2/lib之外,我没有看到任何其他方式。