我正在使用cmake和自定义GCC(带共享库),并且在cmake编译器测试期间我收到以下错误:
The C compiler "/path/to/gcc/bin/gcc" is not able to compile a simple test program.
...
/path/to/gcc/x86_64-unknown-linux-gnu/bin/ld:
cannot find -lgcc_s
这是一个简单的“testme.cpp”文件:
#include <iostream>
int main( int argc, char * argv[] ) {
std::cout << "Hello world" << std::endl;
return 0;
}
这是一个CMakeLists.txt:
cmake_minimum_required(VERSION 2.6.2)
project(testme)
file( GLOB srcs "testme.cpp" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -std=c++11")
set(CMAKE_LDFLAGS "${CMAKE_LDFLAGS} -L/path/to/gcc/lib/gcc/x86_64-unknown-linux-gnu/lib64")
add_executable(testme ${srcs})
使用我的自定义GCC构建我正在导出CXX和CC:
export CXX=/path/to/gcc/bin/g++
export CC=/path/to/gcc/bin/gcc
然后点击:
cmake .
make
结果是它找不到libgcc_s.so,它位于“lib / gcc / x86_64-unknown-linux-gnu / lib64”文件夹中。
但是,当我像这样调用gcc时:
/path/to/gcc/bin/g++ testme.cpp -L/path/to/gcc/lib/gcc/x86_64-unknown-linux-gnu/lib64
它成功编译。我试图将它添加到LD_LIBRARY_PATH但这似乎没有帮助。
那么,有没有办法将库路径传递给CMake编译器检查?
Chrono Kitsune是正确的... / path / to / gcc / x86_64-unknown-linux-gnu / bin / ld是使用“--enable-shared”构建的,而库则不在系统搜索路径中。< / p>