我正在尝试将我的项目与google C ++测试框架相关联。我使用的是Mac OS X El Capitan,我在默认路径中安装了测试库。
lib
:
/usr/local/lib/libgtest_main.a
/usr/local/lib/libgtest.a
include
(对于标题):
/usr/local/include/gtest
我创建了一个新的CLion(2016.1.1)项目,这是应该包含lib的CMakeList.txt
。
cmake_minimum_required(VERSION 3.5)
project(GoogleTest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(GoogleTest ${SOURCE_FILES})
target_link_libraries(GoogleTest gtest gtest_main)
结果如下:
Scanning dependencies of target GoogleTest
[ 50%] Building CXX object CMakeFiles/GoogleTest.dir/main.cpp.o
[100%] Linking CXX executable GoogleTest
ld: library not found for -lgtest
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [GoogleTest] Error 1
make[1]: *** [CMakeFiles/GoogleTest.dir/all] Error 2
make: *** [all] Error 2
我该如何解决这个问题?提前致谢
答案 0 :(得分:1)
看起来/usr/local/lib
不在编译器的库路径列表中。尝试在target_link_libraries
中指定库的完整路径。
target_link_libraries(GoogleTest /usr/local/lib/libgtest.a /usr/local/lib/libgtest_main.a)
答案 1 :(得分:0)
由于您可能有多个项目,具体取决于不同的GoogleTest版本,您可能希望避免将测试库集中安装为构建系统。
Here is an example setup,其中包含相关项目中的所有依赖项。