5

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

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

在尝试使用 CMake 构建我的项目时,我似乎无法弄清楚如何告诉 CMake 搜索该库。文档说使用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为测试编译发出所需的巫术魔法(我知道项目构建后CMAKE_LIBRARY_PATH工作)。如何强制 CMake 使用替代库路径来链接测试可执行文件?

4

1 回答 1

3

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

此外,CMAKE_LIBRARY_PATH它不会帮助您解决问题,因为它仅为 CMake 设置库搜索路径,而不是为编译器设置库搜索路径。

所以,我没有看到任何其他方式,除了设置CMAKE_CXX_FLAGS或。CMAKE_EXE_LINKER_FLAGS-L/opt/gcc-4.6.2/lib

于 2012-01-09T09:05:51.990 回答