오류없이 Python2.7을 정적으로 컴파일했습니다. 내 빌드를 테스트하기 위해, 나는 다음 코드를 사용 :Python - 컴파일 중 Py_Initialize가 해결되지 않았습니다.
#include "Python.h"
int main()
{
Py_Initialize();
}
을 그리고 나는 이런 식으로 컴파일 오전 :
$ gcc -static -I/path/to/python/header -L/path/to/my/staticpythonlib \
-lpython2.7 -ldl -l_all_other_needed_lib /tmp/my_previous_snippet.c -o myouput
그러나, 오류가 발생했습니다. gcc는 유명한 undefined reference
을 주장합니다.
TEST.C :(텍스트 + 0x1로). 'Py_Initialize'
호기심에 정의되지 않은 참조 내가 여기에 결과를 붙여되지 않습니다 (자세한 표시 플래그와 함께 GCC를 사용) 및 컴파일러 말하지만, 내 libpython을 사용하고 있지만 참조를 찾을 수 없습니다. Py_Initialize
가 제대로 pythonrun.o에서 참조되는지,
$ nm /path/to/pythonlib |grep Py_Initialize
frozenmain.o U Py_Initialize
pythonrun.o 0000009e9 T Py_Initialize
pythonrun.o 000000052 T Py_Initialize_Ex
main.o U Py_Initialize
우리는 볼 수 있습니다 그래서 난 내 정적 python2.7 라이브러리의 기호를 나열. 그러나 컴파일러가 올바른 개체 파일을 선택하는 방법을 모르겠습니다.
내 질문은 :
가- 이 어떻게 확신 할 수 있습니다, 그 GCC 내 운영자와의 lib에 올바른 오브젝트 파일을 사용?
- 컴파일 옵션에 이상이 있습니까?
도움 주셔서 감사합니다.
이이 연결되지 컴파일하는 동안 동안 발생하는 오류입니다. – alk