CGO 실행 파일에 대한 정적 Oracle 라이브러리 문제 해결
문제 개요:
CGO가 활성화되고 Oracle 라이브러리가 있는 Go 애플리케이션에서는 정적 링크 중에 오류가 발생합니다. 특히, GCC 링커는 필수 Oracle 라이브러리인 libclntsh를 찾을 수 없습니다. 컴파일 중에 라이브러리 경로를 지정했는데도 문제가 지속됩니다.
해결 방법:
문제를 해결하려면 다음 단계를 따르세요.
예:
11gR2의 경우 다음 명령으로 문제가 성공적으로 해결됩니다.
/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
정적으로 링크할 때는 종속성을 수동으로 해결해야 한다는 점을 기억하세요. 이 예에서 libclntst11.a는 libippdcmerged.a 및 libippsmerged.a에 종속됩니다.
위 내용은 CGO 애플리케이션에서 Oracle 라이브러리의 정적 링크 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!