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

Tra*_*kel 5 cmake library-path

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

$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp
Run Code Online (Sandbox Code Playgroud)

当试图让我的项目用CMake构建时,我似乎无法弄清楚如何告诉CMake搜索该库.该文件说,使用CMAKE_LIBRARY_PATH,这是我用于生成我的Makefile行设置:

$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \
            -DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib
Run Code Online (Sandbox Code Playgroud)

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

# 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...
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到使CMake的发射所需的巫术-L/opt/gcc-4.6.2/lib的测试编译(我知道CMAKE_LIBRARY_PATH的作品后,该项目建成).如何强制CMake使用替代库路径来链接测试可执行文件?

arr*_*owd 3

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

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

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