2012-12-15 3 views
0

내 공유 라이브러리를 사용하는 일부 사용자가로드하는 데 문제가 있습니다. here에 명시된대로 "gcc-libs"를 설치하도록 이미 말씀 드렸습니다.공유 라이브러리를로드 할 때 정의되지 않은 기호 "tbb internal allocate"

나는 또한 그들에게 공유 라이브러리를 컴파일 해달라고 말했지만 행운은 없었다.

다른 문제가 있습니까?

은 CentOS6에 플러그인을로드하려고 프로그램에서 로그 파일 :이 C와 C의 혼합로 작성,

[23:16:57] Failed (plugins/RouteConnectorPlugin.so: undefined symbol: _ZN3tbb8internal12NFS_AllocateEjjPv) 
[23:16:57] Loading plugin failed: RouteConnectorPlugin.so 

이 프로그램은 오픈 소스와 here 위치한 ++ (프로그램입니다 x86 용으로 만 컴파일 됨).

+0

@KillianDS 당신은 .tgz에서 \ libs \를 의미합니까? 그리고 나는 그들에게 GCC-libs를 설치하라고 말했지만 문제를 해결하지는 못했다. :) –

답변

2

공유 라이브러리가 다른 공유 라이브러리에 종속되어 있으면 링크해야합니다. 그런 다음 라이브러리가 다른 실행 가능/공유 라이브러리에 링크되면 종속성이 자동으로로드되고 사용자는 해당 종속성에 대해 명시 적으로 링크 할 필요가 없습니다.

정의되지 않은 기호는 당신이 언급 한 인텔 TBB 라이브러리에서 올 수도

$ c++filt _ZN3tbb8internal12NFS_AllocateEjjPv 
tbb::internal::NFS_Allocate(unsigned int, unsigned int, void*) 

입니다. 이 때문에 코드 사용자의 의존성은 라이브러리에 링크를 연결하여 종속성을 올바르게 선언 할 것을 기대합니다.

this answer에서 GCC를 사용하여이를 수행하는 방법에 대해 설명합니다.

관련 문제