wxWidgets에 대해 프로그램을 작성하려고하는데 링커 오류가 발생합니다. 그게 무슨 뜻인지 정말로 알고 싶습니다. 오류 : 오류가 libwx_baseu-2.8.so
에 왜ELF : linking : .so 파일에서 정의되지 않은 참조를 얻는 이유는 무엇입니까?
/usr/lib/libwx_baseu-2.8.so: undefined reference to `std::ctype<char>::_M_widen_init() [email protected]_3.4.11'
는 내가 이해하지 못하는 것은. 난 .so
파일의 모든 심볼을 해결했다고 생각하고, 여전히 링크가 필요한 파일 인 .o
과는 반대이다.
나는 .so
을 ldd
때, 나는 모든 링크 된 라이브러리를 해결할 수 있습니다 얻을, 그래서 거기에 아무 문제가 없다 :
$ ldd /usr/lib/libwx_baseu-2.8.so
linux-gate.so.1 => (0x00476000)
libz.so.1 => /lib/libz.so.1 (0x00d9c000)
libdl.so.2 => /lib/libdl.so.2 (0x002a8000)
libm.so.6 => /lib/libm.so.6 (0x00759000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x002ad000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0068d000)
libpthread.so.0 => /lib/libpthread.so.0 (0x006f0000)
libc.so.6 => /lib/libc.so.6 (0x00477000)
/lib/ld-linux.so.2 (0x007f6000)
는 .so
파일이이 경우에 (제대로 컴파일되지 않았 음을 의미합니까, 그것은이다 내 배포 패키지의 버그) 또는 내 특정 프로그램에 대한 링커 명령 줄에 누락 된 라이브러리가 있음을 의미합니까?
또한 ELF 파일에서 정의되지 않은 기호에 대한 목록을 얻는 방법을 알고 계십니까? 나는 readelf -s
을 시도했지만 빠진 기호를 찾을 수 없습니다.
감사합니다.
마일드
링크하는 동안 문제가 발생하면 정확한 링커 명령 행을 게시 한 경우 도움이 될 수 있습니다. – ndim