Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
Msbuild 如何为特定配置生成Visual Studio项目?_Msbuild_Cmake_Sfml - Fatal编程技术网

Msbuild 如何为特定配置生成Visual Studio项目?

Msbuild 如何为特定配置生成Visual Studio项目?,msbuild,cmake,sfml,Msbuild,Cmake,Sfml,使用CMake的ExternalProject\u Add,我可以自动构建依赖项。但是,尽管我通过了CMAKE\u build\u TYPE和build\u SHARED\u LIBS,但最终生成配置不匹配 如何生成生成发布版本的VisualStudio项目,而不是在没有提供命令行参数的情况下退回到调试模式?是否有一种方法可以生成一个项目,该项目使用一个msbuild项目生成发行版和调试版。sln?对于多配置生成器(例如Visual Studio),实际的版本配置(调试或发行版)是在生成项目时指

使用CMake的
ExternalProject\u Add
,我可以自动构建依赖项。但是,尽管我通过了
CMAKE\u build\u TYPE
build\u SHARED\u LIBS
,但最终生成配置不匹配


如何生成生成发布版本的VisualStudio项目,而不是在没有提供命令行参数的情况下退回到调试模式?是否有一种方法可以生成一个项目,该项目使用一个
msbuild项目生成发行版和调试版。sln

对于多配置生成器(例如Visual Studio),实际的版本配置(调试或发行版)是在生成项目时指定的。在配置时设置
CMAKE\u BUILD\u类型
无效

使用Visual Studio生成器时,使用
ExternalProject\u Add
命令设置外部项目的生成过程,以便项目使用当前在IDE中选择的生成配置。在CMake术语中,这意味着执行以下代码:

cmake --build <BINARY_DIR> --config ${CMAKE_CFG_INTDIR}
要同时生成发行版和调试版,请添加另一个cmake调用:

ExternalProject_Add(SFML
    ...
    #--Build step-----------------
    BINARY_DIR ${SFML_PREFIX}/build
    BUILD_COMMAND
        ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
        COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug
    ...
    )
ExternalProject\u Add(SFML
...
#--构建步骤-----------------
二进制目录${SFML\u前缀}/build
生成命令
${CMAKE_COMMAND}--build--config发行版
命令${CMAKE_COMMAND}--build--config调试
...
)

非常感谢。所以我可以使用
cmake--build--config Release
在发布模式下构建一个配置好的项目?是否有一个选项可以在一个命令中同时生成发布和调试?此外,在单一配置环境中(我假设GCC是其中之一),我是否仍然可以使用
--config
标志覆盖建筑上的配置类型?第一个问题:是。第二个问题:不是用一个命令。您必须调用cmake两次。第三个问题:否。但是
cmake--build
默认为
cmake\u build\u TYPE
中设置的配置,对吗?否。对于多配置生成,将忽略
cmake\u build\u TYPE
。默认生成配置通常是
CMAKE\u配置类型中的第一个。
ExternalProject_Add(SFML
    ...
    #--Build step-----------------
    BINARY_DIR ${SFML_PREFIX}/build
    BUILD_COMMAND
        ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
    ...
    )
ExternalProject_Add(SFML
    ...
    #--Build step-----------------
    BINARY_DIR ${SFML_PREFIX}/build
    BUILD_COMMAND
        ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
        COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug
    ...
    )