Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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与不同配置的不同二进制文件_C++_Visual Studio_Visual C++_Cmake_Windows Store Apps - Fatal编程技术网

C++ CMake与不同配置的不同二进制文件

C++ CMake与不同配置的不同二进制文件,c++,visual-studio,visual-c++,cmake,windows-store-apps,C++,Visual Studio,Visual C++,Cmake,Windows Store Apps,如果这可能是一个愚蠢的问题,我很抱歉,但我对CMake非常陌生,我试图找出如何做一些看起来不太直接或没有真正记录的事情(至少直接记录…) 我正在尝试使用CMake创建一个跨平台的GLES应用程序,我计划使用ANGLE()来支持Windows应用商店和Windows Phone。我目前正在尝试将模板提供的以下模板位移植到CMake文件: <AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(AngleRootPath)\winrt\

如果这可能是一个愚蠢的问题,我很抱歉,但我对CMake非常陌生,我试图找出如何做一些看起来不太直接或没有真正记录的事情(至少直接记录…)

我正在尝试使用CMake创建一个跨平台的GLES应用程序,我计划使用ANGLE()来支持Windows应用商店和Windows Phone。我目前正在尝试将模板提供的以下模板位移植到CMake文件:

<AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_$(Platform)\</AngleBinPath>
$(AngleRootPath)\winrt\8.1\windows\src\$(配置)\u$(平台)\
该变量随后将按如下方式使用,以链接到库:

<Link>
  <AdditionalDependencies>$(AngleBinPath)lib\libGLESv2.lib;$(AngleBinPath)lib\libEGL.lib;%(AdditionalDependencies)</AdditionalDependencies>
...

$(AngleBinPath)lib\libGLESv2.lib$(AngleBinPath)lib\libEGL.lib;%(附加依赖项)
...
最后,要复制DLL文件,请执行以下操作:

<ItemGroup Label="ANGLE">
    <None Include="$(AngleBinPath)libEGL.dll">
      <DeploymentContent>true</DeploymentContent>
    </None>
    <None Include="$(AngleBinPath)libGLESv2.dll">
      <DeploymentContent>true</DeploymentContent>
    </None>
</ItemGroup>

真的
真的
现在当然有大量关于如何使用CMake外部库的信息,但是我找不到关于如何实现类似的东西的任何信息,其中每个架构以及调试和发布都有不同的二进制文件。我想这一定是一个常见的问题,但它把我难住了。有什么想法吗


另外,我想在CMake端设置标志,为每种配置生成不同的VS项目是最后的选择,但如果在正常情况下只有一个项目可以完成,那么拥有这么多的项目可能会是一种真正的痛苦。

因为3.0版CMake,对于像VS这样的多配置IDE来说,这实际上是一件好事

链接:

target_link_libraries(your_target
    ${AngleRootPath}\winrt\8.1\windows\src\$<CONFIG>_$<PLATFORM_ID>\lib\libGLESv2.lib)
target\u link\u库(您的\u目标
${AngleRootPath}\winrt\8.1\windows\src\$\u$\ lib\libGLESv2.lib)
安装:

install(FILES
    ${AngleRootPath}\winrt\8.1\windows\src\$<CONFIG>_$<PLATFORM_ID>\lib\libGLESv2.lib
    ...)
安装(文件)
${AngleRootPath}\winrt\8.1\windows\src\$\u$\ lib\libGLESv2.lib
...)