使用柯南安装 gtest
Installing gtest with conan
我即将改用 conan,希望它能简化我的用户安装我的包的过程。没关系,直到我开始将 gtest 添加到我的包中。
在安装过程中,我收到消息
gtest/1.8.1@bincrafters/stable: Package installed
conanfile.txt imports(): Copied 4 '.a' files: libgmockd.a, libgtestd.a, libgmock_maind.a, libgtest_maind.a
然而,在构建过程中我收到:
/usr/bin/ld: cannot find -lgmock_maind
/usr/bin/ld: cannot find -lgmockd
/usr/bin/ld: cannot find -lgtestd
我的 CMakeLists.txt 文件包含
target_link_libraries(
${PROJECT_NAME}_GTEST
Modules
${CONAN_LIBS}
)
少了什么?要不要我提供一些
link_directories(?)
争论?
(同时,经过一番尝试,我成功了:不仅
link_directories(${CONAN_LIB_DIRS_GTEST})
需要,而且柯南的.data必须清空。)
你用的是什么发电机?
我的 conanfile.txt 需求部分有这个
gtest/[~=1.8]@bincrafters/stable
这就是我在该部分中的生成器
cmake_find_package
cmake_paths
并且在 CMakeLists.txt
include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
find_package(gtest REQUIRED)
add_dependencies(something gtest::gtest)
target_link_libraries(something gtest::gtest)
请注意,FindGTest 是内置模块,但 Findgtest.cmake 是 conan 在构建目录中生成的文件。
gtest
的 Bincrafters 包已标记为过时,您应该使用柯南中心的那个。
为此,只需将柯南食谱添加到 conanfile.txt/py
.
假设您使用普通 conanfile.txt
:
# conanfile.txt
[requires]
gtest/1.10.0
[generators]
cmake
那你可以运行conan install
然后将 conan 说明添加到您项目的 CMakeLists.txt
:
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
您可以打印消息以查看包含的库:
message("-- Conan libs: ${CONAN_LIBS}")
.
这应该包括 gtest
和 gmock
.
最后,只包含 header,并使用框架:
#include "gtest/gtest.h"
TEST(TestName, Foo)
{
EXPECT_TRUE(true);
}
我即将改用 conan,希望它能简化我的用户安装我的包的过程。没关系,直到我开始将 gtest 添加到我的包中。
在安装过程中,我收到消息
gtest/1.8.1@bincrafters/stable: Package installed
conanfile.txt imports(): Copied 4 '.a' files: libgmockd.a, libgtestd.a, libgmock_maind.a, libgtest_maind.a
然而,在构建过程中我收到:
/usr/bin/ld: cannot find -lgmock_maind
/usr/bin/ld: cannot find -lgmockd
/usr/bin/ld: cannot find -lgtestd
我的 CMakeLists.txt 文件包含
target_link_libraries(
${PROJECT_NAME}_GTEST
Modules
${CONAN_LIBS}
)
少了什么?要不要我提供一些
link_directories(?)
争论?
(同时,经过一番尝试,我成功了:不仅
link_directories(${CONAN_LIB_DIRS_GTEST})
需要,而且柯南的.data必须清空。)
你用的是什么发电机?
我的 conanfile.txt 需求部分有这个
gtest/[~=1.8]@bincrafters/stable
这就是我在该部分中的生成器
cmake_find_package
cmake_paths
并且在 CMakeLists.txt
include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
find_package(gtest REQUIRED)
add_dependencies(something gtest::gtest)
target_link_libraries(something gtest::gtest)
请注意,FindGTest 是内置模块,但 Findgtest.cmake 是 conan 在构建目录中生成的文件。
gtest
的 Bincrafters 包已标记为过时,您应该使用柯南中心的那个。
为此,只需将柯南食谱添加到 conanfile.txt/py
.
假设您使用普通 conanfile.txt
:
# conanfile.txt
[requires]
gtest/1.10.0
[generators]
cmake
那你可以运行conan install
然后将 conan 说明添加到您项目的 CMakeLists.txt
:
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
您可以打印消息以查看包含的库:
message("-- Conan libs: ${CONAN_LIBS}")
.
这应该包括 gtest
和 gmock
.
最后,只包含 header,并使用框架:
#include "gtest/gtest.h"
TEST(TestName, Foo)
{
EXPECT_TRUE(true);
}