Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我想生成&;使用CMake编译Visual Studio projet我需要从构建中排除单元测试文件。有办法做到这一点吗?_C++_Visual Studio_Cmake - Fatal编程技术网

C++ 我想生成&;使用CMake编译Visual Studio projet我需要从构建中排除单元测试文件。有办法做到这一点吗?

C++ 我想生成&;使用CMake编译Visual Studio projet我需要从构建中排除单元测试文件。有办法做到这一点吗?,c++,visual-studio,cmake,C++,Visual Studio,Cmake,我的项目包含我想从编译过程中排除的单元测试文件。我想用CMake修改.vcxproj Visual Studio文件。我的问题的可能解决方案是什么 set_source_files_properties(BankTestCase_1.h PROPERTIES VS_DEPLOYEMENT_CONTENT 0) set_source_files_properties(BankTestCase_1.h PROPERTIES EXCLUDE_FROM_BUILD 1) 首先,您不需要修改.vcxp

我的项目包含我想从编译过程中排除的单元测试文件。我想用CMake修改.vcxproj Visual Studio文件。我的问题的可能解决方案是什么

set_source_files_properties(BankTestCase_1.h PROPERTIES VS_DEPLOYEMENT_CONTENT 0)

set_source_files_properties(BankTestCase_1.h PROPERTIES EXCLUDE_FROM_BUILD 1)

首先,您不需要修改
.vcxproj
文件。CMake生成一个。每次调用cmake时,都会生成一个新的项目文件。您必须正确地生成它


CMake已经定义了一个函数来添加测试。它叫

它通过指定名称然后指定命令或可执行目标来工作:

add_executable(my_test_exe testsrc1.cpp testsrc2.cpp)
add_test(NAME MyTest COMMAND my_test_exe)
如果您也不想编译主项目中的测试文件,请不要将它们添加到主目标:

add_executable(main_project
    src1.cpp
    src2.cpp
    src3.cpp
    src4.cpp
    # srctest1.cpp # not added
    # srctest2.cpp # not added too.
)
另外,我注意到您希望从编译中删除头文件。头文件根本不应该被编译。你不应该将它们添加到你的目标中


如果使用globs添加所有源文件,则始终可以将其从glob列表中删除:

list(REMOVE_ITEM globbed_files file/to/be_excluded.cpp)