问题描述
我正在尝试在 Windows 10 计算机上构建 aasdk 项目。为此,我尝试在 git repo 目录的根目录中运行以下命令:
name
最后一个命令显然是失败的那个。运行该命令时,我得到以下输出:
mkdir buildDir
cd buildDir
cmake ..\
cmake --build . --config Release
其中 -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.
-- Found libusb-1.0:
-- - Includes: C:/libusb-master/x64/Release
-- - Libraries: C:/libusb-master/x64/Release/lib/libusb-1.0.lib
-- Configuring done
-- Generating done
-- Build files have been written to: C:/aasdk-development/buildDir
Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET Framework
copyright (C) Microsoft Corporation. All rights reserved.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(200,5): warning MSB8062: Custom build for item "C:\aasdk-development\buildDir\CMakeFiles\b2b8e2a3c1aae1e014a7c3c3f8aadde7\AVCha
nnelData.pb.h.rule" specifies invalid path "C:\aasdk-development\buildDir\aasdk_proto\protobuf::protoc" as an additional dep
endency. This may cause incremental build to work incorrectly. [C:\aasdk-development\buildDir\aasdk_proto\aasdk_proto.vcxpro
j]
...
Running cpp protocol buffer compiler on C:/aasdk-development/aasdk_proto/AVChannelData.proto
The filename,directory name,or volume label Syntax is incorrect.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(238,5): error MSB8066: Custom build for 'C:\aasdk-development\buildDir\CMakeFiles\b2b8e2a3c1aae1e014a7c3c3f8aadde7\AVChannelDat
a.pb.h.rule;...' exited
with code 123. [C:\aasdk-development\buildDir\aasdk_proto\aasdk_proto.vcxproj]
是对 ...
目录中的每个 *.proto 文件重复的相同消息。据我所知,似乎认为某些路径无效。我不知道的是,哪些路径以及它们以何种方式无效。
在第一条评论之后,我决定检查它从哪里获得这些路径。以下是 protobuf 的 aasdk_proto
内容,位于 CMakeLists.txt
目录中:
aasdk_proto
有趣的是第 5 行,它在调用 include(FindProtobuf)
find_package(Protobuf required)
include_directories(${PROTOBUF_INCLUDE_DIR})
file(GLOB_RECURSE proto_files ${CMAKE_CURRENT_SOURCE_DIR}/*.proto)
protobuf_generate_cpp(proto_sources proto_headers ${proto_files})
add_library(aasdk_proto SHARED ${proto_headers} ${proto_sources})
target_link_libraries(aasdk_proto ${PROTOBUF_LIBRARIES})
之前枚举了相关目录中的所有 *.proto 文件,我认为这是导致错误的部分。
在第 5 行后添加 protobuf_generate_cpp
以打印路径产生正确的值,至少在我看来:
message(STATUS ProtoFiles: ${proto_files})
我用反斜杠代替了正斜杠,只是为了逗笑,因为 Windows 就是这样喜欢它们的,但这不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)