在Windows上链接基于gtest的应用程序:visual studio和cmake

时间:2014-02-26 10:49:19

标签: c++ visual-studio-2012 cmake googletest

对于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/)。

1 个答案:

答案 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)