2014-01-14 3 views
0

저는 ARM 용 rabbitmq-c를 빌드하고 있습니다. 라이브러리를 내 보낸 경우 :rabbitmq 빌드시 라이브러리 경로 변경

export LD_LIBRARY_PATH=path_to_library_folder 

그러나이 오류가 계속 발생합니다. 어떻게 든, 쉐이크는 그것을 찾지 못한다.

$ cmake --build . --target install 
Linking C shared library librabbitmq.so 
/usr/lib/x86_64-linux-gnu/libssl.so: file not recognized: File format not recognized 
collect2: ld returned 1 exit status 
make[2]: *** [librabbitmq/librabbitmq.so.1.1.1] Error 1 
make[1]: *** [librabbitmq/CMakeFiles/rabbitmq.dir/all] Error 2 
make: *** [all] Error 2 

답변

0

LD_LIBRARY_PATH는 런타임 용이며 실행 파일에 필요한 라이브러리를 찾는 위치를 OS에 알려줍니다. 여기에 또 다른 문제가있는 것처럼

SET(LINK_DIRECTORIES path_to_library_folder) 

그러나, 그것은 같습니다

당신은 CMake 지시어를 필요로하는 빌드 타임 검색 경로를 설정합니다. 대신 발견되는 라이브러리는 타겟 아키텍처가 아닌 호스트 아키텍처 용이며 표준 위치에 있습니다. 이것은 내가 당신의 크로스 컴파일 설정이 꽤 올바르게 설정되어 있지 않은 것으로 의심된다.

+0

나는 그것도 시도했지만 작동하지 않습니다. 올바른 컴파일러를 호출하고 있다고 생각합니다. 그렇지 않으면 libssl의 x86 버전을 인식 할 수 있습니까? 그렇지 않습니다. – Bob

+0

물론 올바른 컴파일러를 호출하고 있습니다. 그러나 컴파일러보다 크로스 컴파일에 더 많은 것이 있습니다. – Peter