개체 파일을 컴파일 한 다음 "theLib"의 함수에 대한 정의되지 않은 참조가 있다는 이유로 실패한 실행 파일을 컴파일하려고했습니다. (내가 한 어느 나는 모든 곳에서 답을 확인개체를 컴파일 한 후 공유 라이브러리를 연결할 때 오류가 발생했습니다.
, 그들은 모든 단지 종속 후 -ltheLib
부분을 이동 제안 :
g++ -I./theLib/src -c -o obj/main.o src/main.cpp
는
g++ -L./theLib -Wl,-rpath=./theLib obj/main.o -ltheLib -o exe
(libtheLib.so: undefined reference to 'some_function'
오류) (지금까지 작동)). 하지만 여전히 작동하지 않습니다. 정말로 내 마음을 불허하는 것은 동일한 라이브러리가 다른 디렉토리에있는 예제를 위해 잘 컴파일된다는 것입니다.
라이브러리가 C에 있습니다. C++ 컴파일을 망칠 수 있습니까? 또는 .o
파일을 먼저 컴파일하는 중 뭔가가 누락 되었습니까?
C++ 코드에서 사용중인'theLib '의 함수에'extern "C"'를 사용합니까? –
라이브러리 헤더에는 yes가 포함됩니다. – Sefu
도서관이 다른 도서관의 일부를 언급하는 것은 드문 일이 아닙니다. 아마도 lib에 대한 의존성을 찾아 링커 명령 줄에 추가해야 할 것입니다. – lothar