Tidak Dapat Menemui Perpustakaan Oracle Semasa Binaan Statik
Dalam percubaan untuk mencipta Go statik boleh laku dengan perpustakaan Oracle pada Ubuntu, ralat telah ditemui semasa cuba menghubungkan mereka. Walaupun binaan dinamik berjaya, pengkompil statik melaporkan ketidakupayaan untuk mencari pustaka Oracle, walaupun pada hakikatnya fail yang diperlukan terdapat di lokasi yang betul.
Resolusi
/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
Arahan ini termasuk statik tambahan perpustakaan untuk menyelesaikan kebergantungan, termasuk libippdcmerged.a dan libippsmerged.a.
Ringkasnya, pemautan statik memerlukan penyelesaian manual semua kebergantungan, yang mungkin memerlukan kemasukan perpustakaan tambahan yang biasanya tidak disertakan dalam pemautan dinamik.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memautkan Aplikasi My Go secara Statik dengan Perpustakaan Oracle, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!