의 그것을 인식해야합니까 (데비안) 기계, 나는 링커에서 오류가 발생합니다 :건물 프로젝트는 어떻게 라이브러리
Linking C executable ../../../../cpsadamsx
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlopen'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlclose'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlerror'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlsym'
collect2: ld returned 1 exit status
make[2]: *** [cpsadamsx] Error 1
make[1]: *** [sundials/examples/cpodes/serial/CMakeFiles/cpsadamsx.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
분명히 dlopen, dlclose, dlerror 및 dlsym은 libdl.so에 대한 참조입니다. 나는 /lib64/libdl.so.2에 그 라이브러리를 가지고 있는데 왜 발견되지 않습니까?
정상적인 './configure; 하다;
export LIBS=-ldl && ./configure
을하지만 지금은 어떻게해야합니까 : install' 경로를 만들 내가 LIBS 변수를 설정하고이 같은 구성 명령을 실행 한 수 (나는 생각한다)?
는 UPDATE :
그래서 (또는 적어도) 라이브러리를 찾을 것 같다,하지만 문제의 문자가 포함되어 있지 않습니다. 아마도/lib에있는 32 비트 라이브러리로 시도 할 것입니까?
/lib64/libdl.so.2를 역 어셈블하여 dlopen 등의 참조가 없는지 확인하십시오.
이제 문제는 빌드 도구를 올바른 버전의 라이브러리로 안내하는 것 같습니다. 이 질문으로
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ldl")
을하지만,하지 "내"프로젝트 : 그것은이 유사합니다. – dala