问题
在我的C++项目中,我使用protobuf通过调用protobuf_generate_cpp cmake宏生成一些文件。generate文件类似于:
cd /Users/bob/code/cmake-build-debug/tools/converter/src && /Users/bob/code/cmake-build-debug/_deps/protobuf-build/protoc -I/Users/bob/cmake-build-debug/tools/converter/src --cpp_out=./ /Users/bob/code/cmake-build-debug/tools/converter/src/module/a.proto这是可行的,文件层次结构是:
cmake-build-debug/toos/converter/src/module/a.proto当我使用emcmake和emmake构建同一个项目时,我得到了生成的make文件:
/Users/bob/code/emsdk/node/14.18.2_64bit/bin/node --experimental-wasm-threads /Users/bob/code/cmake-build-debug/_deps/protobuf-build/protoc.js -I/Users/bob/code/cmake-build-debug/pnn/tools/converter/src --cpp_out=./ /Users/bob/code/cmake-build-debug/tools/converter/src/module/a.proto但我错了:
Users/bob/code/cmake-build-debug/tools/converter/src: warning: directory does not exist.
Could not make proto path relative: module/a.proto: No such file or directory但是为什么呢?我搜索了很多。感谢您的回复。
发布于 2022-08-07 13:01:53
我已经解决了这个问题。如果任何人有同样的问题,你可以引用这个,看看它是否有帮助。
出现错误的原因是protoc.js没有访问文件系统的权限。因此,使用节点原始文件系统在protoc中启用CMake目标将解决以下问题:
set_target_properties(protoc PROPERTIES LINK_FLAGS "-sNODERAWFS=1")https://stackoverflow.com/questions/73266056
复制相似问题