对于linux,我使用以下cmake规则来构建和链接运行我的库(bt_lib)的单元测试的可执行文件:
set(TEST_EXECUTABLE unit_tests)
include_directories(
$ENV{GMOCK_ROOT}/include
$ENV{GMOCK_ROOT}
$ENV{GMOCK_ROOT}/gtest
$ENV{GMOCK_ROOT}/gtest/include
)
add_executable(${TEST_EXECUTABLE} test1.cpp ../${PROJECT_H})
target_link_libraries(${TEST_EXECUTABLE}
bt_lib
gtest
gtest_main
pthread
gmock
)
CMake生成visual studio项目文件,我可以毫无问题地构建我的库和gmock / gtest。但实际测试需要pthread,这在Windows上是不可用的。
如果我在Windows上,是否可以检查我正在配置哪个操作系统并将$ TEST_EXECUTABLE链接到pthread之外的其他内容?如果是这样,怎么样?
我必须补充说,我是Windows上大多数事情的初学者,所以即使是相当琐碎的事情也需要解释。我认为使用visual studio是我想要的方式(不像http://www.mingw.org/)。
答案 0 :(得分:0)
基本上,pthread在Windows中不存在,因为它是POSIX规范。如果您的代码具有pthread_create等功能,则需要一个用于windows的pthreads端口,例如:
下载并安装pthread端口时,通常应该具体说明INCLUDE和LINK目录:
IF (WIN32)
INCLUDE_DIRECTORIES(your_path_to_pthreads_includes)
LINK_DIRECTORIES(your_path_to_pthreads_lib)
ELSE(WIN32)