Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
cmake 3.18.1生成的vcxproj上缺少CompileAs选项_Cmake_Vcxproj - Fatal编程技术网

cmake 3.18.1生成的vcxproj上缺少CompileAs选项

cmake 3.18.1生成的vcxproj上缺少CompileAs选项,cmake,vcxproj,Cmake,Vcxproj,当我使用cmake 3.2.1为我的项目生成.vcxproj时,它会生成一行CompileAsCpp 但是当我尝试cmake版本3.18.1时,生成的.vcxproj文件不包含导致测试失败的前一行(代码编译)。 此处是设置项目属性的cmake代码: add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC}) if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake|MSBuild)")

当我使用cmake 3.2.1为我的项目生成.vcxproj时,它会生成一行
CompileAsCpp
但是当我尝试cmake版本3.18.1时,生成的.vcxproj文件不包含导致测试失败的前一行(代码编译)。 此处是设置项目属性的cmake代码:

add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC})

if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake|MSBuild)")
    target_compile_options(${PROJECT_NAME} PRIVATE "/TP")
endif()

target_include_directories(${PROJECT_NAME} PRIVATE ${PUBLIC_INCLUDES} ${PRIVATE_INCLUDES} )
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
如何要求cmake生成缺少的行(
CompileAsCpp
)?
谢谢。

我试着使用CMake 3.18.0,它成功了。 CompileAs标记已生成,因此我将使用此版本而不是CMake 3.18.1


谢谢。

我试着使用CMake 3.18.0,它成功了。 CompileAs标记已生成,因此我将使用此版本而不是CMake 3.18.1


谢谢。

丢失的标签如何导致测试失败?PROJECT_SRC中有什么类型的文件?另外,您为哪个版本的visual studio生成代码?阅读一下代码,您需要这个/TP标志似乎有些奇怪。您应该能够将项目语言设置为CXX,其余的由CMake完成。您好@Botje,谢谢您的回答。我正在生成一个VS2015解决方案,但是我使用Visual Studio 2019。我的代码在C中,但是DLL应该被编译成C++,以便在测试项目中使用。我试图将我的主要项目定义为CXX,但没有成功。我还尝试将CXX标准设置为11,但仍然存在相同的问题。丢失的标记如何导致测试失败?PROJECT_SRC中有什么类型的文件?另外,您为哪个版本的visual studio生成代码?阅读一下代码,您需要这个/TP标志似乎有些奇怪。您应该能够将项目语言设置为CXX,其余的由CMake完成。您好@Botje,谢谢您的回答。我正在生成一个VS2015解决方案,但是我使用Visual Studio 2019。我的代码在C中,但是DLL应该被编译成C++,以便在测试项目中使用。我试图将我的主要项目定义为CXX,但没有成功。我还尝试将CXX标准设置为11,但仍然存在相同的问题。