问题 CMake在Ubuntu中找不到GoogleTest所需的库


类似的问题 这里

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)

# Locate GTest
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

# Add test cpp file
add_executable(foo foo.cpp)

# Link test executable against gtest & gtest_main
target_link_libraries(foo ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread)

而我的foo.cpp:

#include <gtest/gtest.h>

TEST(sample_test_case, sample_test)
{
    EXPECT_EQ(1, 1);
}

int main(int argc, char **argv)
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

现在,使用g ++编译器时一切正常。但是,当尝试使用QNX的编译器ntox86-c ++时,我遇到了这个问题:

/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97中的CMake错误(消息):   找不到GTest(缺少:GTEST_LIBRARY GTEST_INCLUDE_DIR   GTEST_MAIN_LIBRARY)

我在Ubuntu上使用ntox86-c ++编译器,googletest和cmake-gui。

是什么赋予了?


3766
2018-06-18 22:15


起源

当我安装gtest而不是gtest-devel时,这发生在我身上。在Ubuntu上,我猜你需要类似的东西 sudo apt-get install libgtest-dev - Ami Tavory
您可以在收到错误消息之前共享最后一个输出。我认为它将测试一些标题(包含)或库的存在。这将有助于缩小问题范围。 - usr1234567


答案:


谷歌测试可能没有正确安装(libgtest-dev 可能只安装需要编译的源文件)。我有同样的问题,我按照说明进行操作 http://www.eriksmistad.no/getting-started-with-google-test-on-ubuntu/

sudo apt-get install libgtest-dev
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make

#copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
sudo cp *.a /usr/lib

这对我有用。


15
2017-10-07 22:40



您不应将库复制到/ usr / lib中。而是通过CMake右侧标志像GTEST_ROOT或将您的GTest目录添加到CMake的搜索路径。 - usr1234567
@detrick忘记添加 cd /usr/src/gtest 在跑步之前 sudo cmake CMakeLists.txt 编译 libgtest-dev - Conchylicultor


前段时间我创建了一个dockerfile,这有助于我保留一种配方,以便稍后在我的系统上进行谷歌测试:

apt-get install -y git g++ make cmake 
git clone https://github.com/google/googletest.git
cd googletest
mkdir gbuild && cd gbuild && cmake .. && make
cp -r googletest/include/gtest /usr/local/include
cp gbuild/googlemock/gtest/lib*.a /usr/local/lib
cp gbuild/googlemock/lib*.a /usr/local/lib

我希望它有帮助:)


0
2018-01-28 12:03





正如@detrick所解释的那样,Ubuntu包 libgtest-dev 只安装源,因此您需要自己构建和安装库。

但是,在其他答案中,构建和安装的方式比手动命令要简单得多:

sudo apt install libgtest-dev build-essential cmake
cd /usr/src/googletest
sudo cmake .
sudo cmake --build . --target install

0
2017-09-18 18:53