저는 C 멍청이입니다. 그래서 이것은 어리석은 질문 일 수 있습니다. ctypes
통해 파이썬으로 가져 오기위한 명시적인 목적으로 .so 파일 (공유 라이브러리, 내 용어가 올바른 경우)을 C 개체 (.o 파일)로 컴파일하려고합니다. 내가 먼저 컴파일 * 내가 함께 보상을했다하는 ctypes를 통해로드하려고 할 때이 점을 제외하고, 일-llibc을 찾을 수 없습니다.
gcc -shared -o libvARAM.so ARAM.o ARAM_io.o io.o pre.o rule.o stat.o ART.o vARAM.o
로 .SO : 뒷조사 후
OSError: ./libvARAM.so: undefined symbol: max
, 나는 최대 표준 아니라는 것을 깨달았 C 함수. ldd libvARAM.so
을 호출하면 종속성 중 하나가 libc.so.6
임을 알립니다. 나는 libc.so.6
에 심볼릭 링크 libc.so
를 생성 한 후 나는 또한 -L/lib/i386-linux-gnu/ -llibc
을 시도하는 경우
/usr/bin/ld: cannot find -llibc
이 같은 오류가 생성됩니다 생성 한
gcc -shared -o libvARAM.so ARAM.o ARAM_io.o io.o pre.o rule.o stat.o ART.o vARAM.o -llibc
로 내 .so를 재 컴파일했습니다. 나는 this 스레드를 알고 있지만 해결책이 메이크 파일에 대한 것으로 내 상황과 관련이 없다고 생각합니다. 이 문제가 발생하면 저는 Xubuntu를 사용하고 있습니다.
모든 도움을 진심으로 감사드립니다.
일부 GNU 소프트웨어를 컴파일 할 때 포함 된 (이식 된) 이식성 라이브러리는'libiberty.a '입니다. 물론 이것은'-liberty' 옵션과 함께 컴파일에 포함됩니다. (슬픈 그들이 자유를 빼고있다 슬픈,하지만 물론 옵션에 대한 관례입니다.) –