当前位置: 首页 > 知识库问答 >
问题:

使用msbuild构建32位fmt

乐正涵意
2023-03-14

我正在尝试使用cmake/msbuild在Windows Server 2019上构建一个32位fmt(我没有完整的Visual Studio GUI,我只有命令行构建工具)。我得到了这个错误:

C:\Program Files(x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\Microsoft。CppBuild。目标(408,5):错误MSB8013:此项目不包含调试| Win32的配置和平台组合。

它可以构建为64位,但这不是我需要的。我认为这是因为fmt生成的构建文件没有针对32位Windows的配置(我认为调试位无关紧要,它也不适用于发布配置)。

我在build子目录中按照fmt的说明执行此操作:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_C_FLAGS=-m32 -DCMAKE_GENERATOR_PLATFORM=x86 ..
cmake --build . --config Release
cmake --install . --prefix <fmtlib_target_dir> --config Release

有没有办法在Windows上构建32位的fmt?

共有1个答案

魏威
2023-03-14

对于具有CI构建的项目,关于如何构建的最佳文档通常是CI脚本/配置本身;从…起https://github.com/fmtlib/fmt/blob/master/support/appveyor-build.py :

if image == 'Visual Studio 2019':
    generator = 'Visual Studio 16 2019'
    if platform == 'x64':
        cmake_command.extend(['-A', 'x64'])
else:
    if image == 'Visual Studio 2015':
        generator = 'Visual Studio 14 2015'
    elif image == 'Visual Studio 2017':
        generator = 'Visual Studio 15 2017'
    if platform == 'x64':
        generator += ' Win64'
cmake_command.append('-G' + generator)

换句话说:为32位构建传递不同的生成器/选项,如-G"Visual Studio 16 2019"-A Win32

 类似资料:
  • 问题内容: 是否有任何的组合和我可以为了建立ELF 32位二进制设定值? 问题答案: 和。 更多示例:体系结构: 作业系统: 有关完整列表(有效的“个体”值),请参考文件: 请注意,以上列表是一个不断增长的列表,不再删除不再受支持的平台(因为该列表用于go / build文件名匹配)。 对于当前列表,所有受支持的平台(GOOS / GOARCH组合),请使用以下命令: + (source)的有效组

  • 问题内容: 我们已经继承了一个ant构建文件,但现在需要同时部署到32位和64位系统。 非Java位是通过GNUMakefiles完成的,我们只调用“ uname”来获取信息。有没有类似或什至更简单的方法来模仿蚂蚁呢? 问题答案: 您可以使用$ {os.arch}从ant 获得Java系统属性(http://java.sun.com/javase/6/docs/api/java/lang/Syst

  • 我们有一个C#可执行文件,它加载一个用C++编写的32bit dll,它动态加载另一个32bit dll(第一个dll是包装器)。 当它构建在32位机器上(使用VS toolset v100)时,它都能正常工作。

  • 问题内容: 所有其他C#项目文件都使用MSBuild脚本构建。但是,很少有与C ++相关的项目因以下错误而失败- C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp.Platform.targets(44,5):错误MSB8020:v140的构建工具(Platform Toolset =’v14

  • 我有一个.net核心类库,我正试图构建成一个bugget包。然而,在我的构建服务器(运行team city)上,我收到了以下错误: C:\ team city \ build agent \ work \ 3c 6531587491 c25e \ my solution \ my project . csproj错误MSB4019:导入的项目“C:\ Program Files(x86)\ Mic

  • 问题内容: 您如何使用Java确定Windows的32位或64位体系结构? 问题答案: 请注意,该属性仅会为您提供 JRE 的体系结构,而不是基础os 的体系结构。 如果在64位系统上安装32位jre,将返回 为了真正确定基础架构,您将需要编写一些本机代码。有关更多信息,请参见此帖子(以及示例本地代码的链接)。