C 언어로 작성된 Python 모듈을 로드할 때 .so의 함수를 찾을 수 없다는 메시지가 나타납니다.
怪我咯
怪我咯 2017-05-18 11:00:29
0
1
601

C 언어로 Python 모듈을 작성하려고 했지만 C 프로그램 자체가 타사 라이브러리(libwiringPi.so)에 의존합니다. Python 소스 프로그램에서 생성한 라이브러리를 가져오면 함수가 다음과 같은 메시지가 표시됩니다. 정의되지 않은 경우 이러한 함수는 모두 해당 타사 라이브러리에 있습니다. 내가 컴파일하는 모듈이 해당 라이브러리에 동적으로 링크될 수 있도록 어떻게 컴파일해야 합니까?

또한 gcc를 사용하여 동적 링크 라이브러리를 수동으로 컴파일한 다음 cyes를 사용하려고 시도했지만 동일한 오류가 보고되었습니다. 생성된 모듈의 C 코드와 setup.py 코드는 모두 Python 소스의 데모 프로그램을 기반으로 합니다. 코드 패키지.

내 C 프로그램 코드

으아아아

setup.py

으아아아

오류 메시지

으아아아
怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
左手右手慢动作

아 아침에 일어나서 갑자기 생각나서 급하게 해봤는데요.

이 문제는 컴파일 시 이 매개변수를 -lwiringPi 选项来引用这个库,但是我仔细看了以下执行 python setup.py build 之后执行的编译命令,根本就没有加这个选项,解决方式很简单,只需要修改一下setup.py,在Extension里面加上 libraries = ['wiringPi'] 추가해야 하기 때문에 발생합니다. 수정된 setup.py는 다음과 같습니다

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿