2012-06-19 2 views
1

안녕하세요! Eclipse에서 main.cpp 프로젝트를 실행 중입니다. 나는 기존의 .so 파일을 main.cpp에 링크하고 싶다. 나는 이것에 대해 조사하고 있지만 나를 위해 올바른 방법을 찾을 수 없습니다. 나는 우분투를 사용하고있다. 어떤 도움을 주셔서 감사합니다!만든 .so 파일을 main.cpp에 연결할 수 없습니다.

+0

관련 오류 코드를 게시하십시오. – dirkgently

답변

1

라이브러리와 링크하려면 컴파일러 (또는 링커)에게 -l 플래그와 라이브러리 이름을 제공해야합니다. 예를 들어 라이브러리 libjustine.so에 연결하려면 컴파일러 (gcc의 경우 gcc, C++의 경우 gcc)에 플래그 -ljustine을 제공 한 다음 컴파일러에서 링커에게 파일에 연결되도록 지시합니다 libjustine 라이브러리 경로에 .so (일반적으로 적어도 /usr/lib//usr/local/lib/). 당신은 당신의 프로젝트 디렉토리 내에서 예를 들어, lib 디렉토리/ 디렉토리를 자신의 라이브러리 디렉토리를 정의하려면

그러나, 당신은 -L 플래그를 사용하고 (현재 디렉토리를 기준으로) 원하는 라이브러리 디렉토리를 제공 할 필요가 (예 : -L/lib/) 컴파일러가 lib/ (예 : /usr/lib/)에서 원하는 라이브러리를 찾도록 링커에 지시 할 수 있으므로 기본적으로 파일을 찾습니다.

+0

이 작업을 수행하기위한 예제 코드를 제공 할 수 있습니까? 예를 들어 libjustinte.so를 main.cpp에 연결하려고합니다. libjustine.so가 설치되어 있어야하거나/usr/lib 또는/usr/local/lib에 넣어야합니다. 당신의 대답에 감사드립니다! –

+0

Eclipse에서 링커 옵션을 정의하는 방법을 알지 못해서 그런 식으로 문제에 직접적으로 대답 할 수는 없습니다. 그러나 예, 소위 라이브러리 경로에 * libjustinte.so * 파일이 있어야합니다. 이 * ordinaryy *에는/usr/lib와/usr/local/lib가 모두 포함되어 있으므로 둘 다 작동해야합니다. 대답에서 언급했듯이 현재 디렉토리와 관련하여 라이브러리에 대한 경로를 정의하기 위해'-L' 플래그로 C 또는 C++ 컴파일러 (gcc/g ++)를 제공 할 수도 있습니다. – zxcdw

+0

libv8.so.3.8.9.20과 같은 것이 있다면? 그것은 작동하지 않는 것 같은데 ... : ( – m93a

관련 문제