C 언어로 Python 모듈을 작성하려고 했지만 C 프로그램 자체가 타사 라이브러리(libwiringPi.so)에 의존합니다. Python 소스 프로그램에서 생성한 라이브러리를 가져오면 함수가 다음과 같은 메시지가 표시됩니다. 정의되지 않은 경우 이러한 함수는 모두 해당 타사 라이브러리에 있습니다. 내가 컴파일하는 모듈이 해당 라이브러리에 동적으로 링크될 수 있도록 어떻게 컴파일해야 합니까?
또한 gcc를 사용하여 동적 링크 라이브러리를 수동으로 컴파일한 다음 cyes를 사용하려고 시도했지만 동일한 오류가 보고되었습니다. 생성된 모듈의 C 코드와 setup.py 코드는 모두 Python 소스의 데모 프로그램을 기반으로 합니다. 코드 패키지.
내 C 프로그램 코드
으아아아setup.py
으아아아오류 메시지
으아아아
아 아침에 일어나서 갑자기 생각나서 급하게 해봤는데요.
이 문제는 컴파일 시 이 매개변수를
으아아아-lwiringPi
选项来引用这个库,但是我仔细看了以下执行python setup.py build
之后执行的编译命令,根本就没有加这个选项,解决方式很简单,只需要修改一下setup.py,在Extension里面加上libraries = ['wiringPi']
추가해야 하기 때문에 발생합니다. 수정된 setup.py는 다음과 같습니다