How to set up googleTest as a shared library on Linux

后端 未结 12 2669
北荒
北荒 2020-11-28 01:04

Debian does not provide any precompiled packages for gTest anymore. They suggest you integrate the framework into your project\'s makefile. But I want to keep my makefile cl

12条回答
  •  不知归路
    2020-11-28 01:52

    Update for Debian/Ubuntu

    Google Mock (package: google-mock) and Google Test (package: libgtest-dev) have been merged. The new package is called googletest. Both old names are still available for backwards compatibility and now depend on the new package googletest.

    So, to get your libraries from the package repository, you can do the following:

    sudo apt-get install googletest -y
    cd /usr/src/googletest
    sudo mkdir build
    cd build
    sudo cmake ..
    sudo make
    sudo cp googlemock/*.a googlemock/gtest/*.a /usr/lib
    

    After that, you can link against -lgmock (or against -lgmock_main if you do not use a custom main method) and -lpthread. This was sufficient for using Google Test in my cases at least.

    If you want the most current version of Google Test, download it from github. After that, the steps are similar:

    git clone https://github.com/google/googletest
    cd googletest
    sudo mkdir build
    cd build
    sudo cmake ..
    sudo make
    sudo cp lib/*.a /usr/lib
    

    As you can see, the path where the libraries are created has changed. Keep in mind that the new path might be valid for the package repositories soon, too.

    Instead of copying the libraries manually, you could use sudo make install. It "currently" works, but be aware that it did not always work in the past. Also, you don't have control over the target location when using this command and you might not want to pollute /usr/lib.

提交回复
热议问题