2009-04-13 4 views
1

저는 지난 30 분 동안이 문제를 해결하기 위해 문자 그대로 GCC를 사용했습니다. 여기서 내가하는 일은 GCC에서 절대적으로 잘 작동하지만, TinyCC를 사용하고 있습니다. 이것이 내가 혼란스러워하는 곳입니다. 먼저 코드 :파이썬 기호가 tinycc에 삽입되어 있다고 파이썬 기호가 정의되지 않았다고 말합니다.

#include <Python.h> 
#include <stdio.h> 
int main(int argc, char*argv[]) 
{ 
    Py_Initialize(); 
    PyRun_SimpleString("print(\"Hello World!\")"); 
    Py_Finalize(); 
    return 0; 
} 

나는 다음과 같이 TCC 전화 :

tcc -o tinypyembed.exe tiny.c -IC:\Python26\include -LC:\Python26\libs -lpython26 

을 그런 다음 큰 지방 바보가되어

tcc: undefined symbol 'Py_Initialize' 
tcc: undefined symbol 'PyRun_SimpleStringFlags' 
tcc: undefined symbol 'Py_Finalize' 

내가 내 지혜의 끝에서 완전히있어 뱉어 누군가가 무엇이 일어나는지를 아는 경우 정말 감사하겠습니다.

친구에게이 것을 시험해보기 위해 묻는 바람에 나는 실제로 그것이 Windows 문제라는 것을 발견했습니다. 이 창이 Windows에서 python으로 tinycc를 시도 할 수있는 다른 사람들에게 경고 메시지로 남길 수 있기를 바랍니다.

답변

3

tiny_impdef.exe을 사용하여 Python DLL 용 파일 .def을 만들었습니까? Windows 용

+0

글쎄요! : D 정말 고마워요 : D –

+0

그래서 링크 시간 오류가 있었습니까? – ojblass

2

전체 솔루션 :

  1. tiny_impdef bk1e의 조언에 따라

    tiny_impdef.exe c:\WINDOWS\system32\python25.dll

  2. 편집 목록에 python25.def (또는 python26.def)를 추가

    tcc tiny.c python25.def -IC:\Python25\include -LC:\Python25\libs -lpython25

    (Python2.6의 경우 25로 26을 대체하십시오)

관련 문제