在静态构建期间无法找到 Oracle 库
尝试在 Ubuntu 上使用 Oracle 库创建静态 Go 可执行文件时,遇到错误试图将它们联系起来。尽管动态构建成功,但静态编译器报告无法找到 Oracle 库,尽管所需的文件存在于正确的位置。
解决方案
/usr/bin/c++ -Wall -ggdb3 -fPIC \ CMakeFiles/opassgen.dir/opassgen.cpp.o \ CMakeFiles/opassgen.dir/dbutils.cpp.o \ CMakeFiles/opassgen.dir/common.cpp.o \ CMakeFiles/opassgen.dir/crypto.cpp.o \ n.o -o opassgen \ -rdynamic -static-libgcc -L. -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic \ /home/oracle/ivan/openssl-1.0.1t/libcrypto.a \ /oracle/u01/db/11.2.0.4/lib/libclntst11.a \ /oracle/u01/db/11.2.0.4/lib/libippdcmerged.a \ /oracle/u01/db/11.2.0.4/lib/libippsmerged.a \ -Wl,--whole-archive libtrotl.a -Wl,--no-whole-archive \ -lpthread -ldl
此命令包含用于解决依赖关系的附加静态库,包括libippdcmerged.a 和 libippsmerged.a.
总之,静态链接需要手动解析所有依赖项,这可能需要包含通常不包含在动态链接中的其他库。
以上是为什么我无法将我的 Go 应用程序与 Oracle 库静态链接,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!