xmake-io / xmake

🔥 A cross-platform build utility based on Lua
https://xmake.io
Apache License 2.0
10.04k stars 785 forks source link

xmake使用protobuf-cpp编译失败 #733

Closed jococi closed 4 years ago

jococi commented 4 years ago

注:提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没有根据下面的模板给出任何相关辅助信息的,将绝对不会有任何反馈。

描述问题

项目中使用了prptobuf-cpp,在build阶段无法正常编译成功。

错误信息

Executing task: xmake <

checking for the Microsoft Visual Studio (x86) version ... 2019 note: try installing these packages (pass -y to skip confirm)? in xmake-repo: -> tbox master -> protobuf-cpp 3.8.0 please input: y (y/n) y => install protobuf-cpp 3.8.0 .. failed if you want to get verbose errors, please see: -> C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\installdir.failed\logs\install.txt error: install failed! 终端进程已终止,退出代码: 1

如果是xmake相关编译问题,请加上-v -D参数运行,并给出详细编译输出信息。

相关环境

其他信息

错误文件C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\installdir.failed\logs\install.txt

在此解决方案中一次生成一个项目。若要启用并行生成,请添加“-m”开关。 生成启动时间为 2020/3/26 14:13:52。 项目“C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln”在节点 1 上(Rebuild 个目标)。 C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln.metaproj : error MSB4126: 指定的解决方案配置“Release|Win32”无效。请使用 Configuration 和 Platform 属性指定有效的解决方案配置(例如 MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU"),或者将这些属性保留为空,以使用默认的解决方案配置。 [C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln] 已完成生成项目“C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln”(Rebuild 个目标)的操作 - 失败。

生成失败。

“C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln”(Rebuild 目标) (1) -> (ValidateSolutionConfiguration 目标) -> C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln.metaproj : error MSB4126: 指定的解决方案配置“Release|Win32”无效。请使用 Configuration 和 Platform 属性指定有效的解决方案配置(例如 MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU"),或者将这些属性保留为空,以使用默认的解决方案配置。 [C:\Users\dayuan\AppData\Local.xmake\cache\packages\2003\p\protobuf-cpp\3.8.0\source\protobuf-3.8.0\cmake\build_A0F19A48\protobuf.sln]

0 个警告
1 个错误

已用时间 00:00:00.37

waruqi commented 4 years ago

这个是cmake编译protobuf的问题,我这边测试x86下也可以正常编译procobuf-cpp

你可以直接用cmake/msbuild编译下试试,xmake内部也是调用的这两

cd build
cmake ..
msbuild xxx.sln -nologo -t:Rebuild -p:Configuration=Release -p:Platform=Win32

看错误,你这里通过Release|Win32去编译,找不到对应的平台模式。

或者你可以先试试直接开个cmd,去执行xmake或者直接执行cmake看看,排查下是否vscode/terminal环境导致vs环境问题

waruqi commented 4 years ago

你也可以追加-vD执行下给我看下完整信息