提问人:Teo Tyrov 提问时间:9/26/2023 更新时间:9/26/2023 访问量:34
即使指定了静态链接,也找不到 protobuf.dll
protobuf.dll not found even though static linking is specified
问:
我有一个静态库,我想用 protobuf 静态链接。该库又由 ,它(希望)形成一个独立的可执行文件。我正在将 vcpkg 用于 protobuf 库。ppc2cpp_core.lib
ppc2cpp.exe
当我尝试运行它时,我发现它丢失了。查看 cmake 构建日志,在我看来很明显,两者都使用静态链接,并且在 linux 上也使用相同的配置(ldd 没有显示对 libprotobuf.so 的依赖性)libprotobuf.dll
ppc2cpp_core.lib
ppc2cpp.exe
ppc2cpp_core.lib
:
[79/83] cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E rm -f ppc2cpp_core.lib && C:\PROGRA~1\LLVM\bin\llvm-ar.exe qc ppc2cpp_core.lib CMakeFiles/ppc2cpp_core.dir/src/analysis/PpcdisAnalysis.cpp.obj [...a bunch of other object files...] && C:\PROGRA~1\LLVM\bin\LLVM-R~1.EXE ppc2cpp_core.lib && cd ."
ppc2cpp.exe
[82/83] cmd.exe /C "cd . && C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -fuse-ld=lld-link -nostartfiles -nostdlib -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -Xlinker /subsystem:console CMakeFiles/ppc2cpp.dir/src/cli/ppc2cpp.cpp.obj -o ppc2cpp.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:ppc2cpp.lib -Xlinker /pdb:ppc2cpp.pdb -Xlinker /version:0.0 ppc2cpp_core.lib _deps/ninutils-build/dolrel.lib _deps/ppcdisasm-cpp-build/ppcdisasm.lib _deps/fmt-build/fmt.lib D:/a/ppc2cpp/ppc2cpp/protobuf_x64-windows/lib/libprotobuf.lib _deps/yaml-cpp-build/yaml-cpp.lib -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames && cd ."
完整工作流日志:https://github.com/em-eight/ppc2cpp/actions/runs/6309753804/job/17130317792
这是我的cmake文件:https://github.com/em-eight/ppc2cpp/blob/5f201d86297284a90d7c11af518589ff1e566637/CMakeLists.txt
查看构建日志,最可疑的是 和 。我在堆栈溢出上发现了这个建议打开的讨论,但它仍然对我不起作用-DPROTOBUF_USE_DLLS
-D_DLL
Protobuf_USE_STATIC_LIBS
答: 暂无答案
评论
libprotobuf.lib
.dll
.dll
.lib