2016-06-21 1 views
0

그래서 웹에서 검색 한 결과 아무 것도 찾을 수 없었습니다.Python.h 컴파일 오류 : collect2.exe Id가 1 개의 종료 상태를 반환했습니다.

저는 파이썬으로 시작했고, 저는 TKinter 어플리케이션을 만들었습니다. 처음에는 .exe 파일로 컴파일하려고 시도했지만 작동하지 않았습니다. 이제는 C++에서 파이썬을 임베딩 할 것입니다.

C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x10): undefined reference to `__imp_Py_Initialize' 
C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x25): undefined reference to `__imp_PyRun_SimpleStringFlags' 
C:\Users\*****\AppData\Local\Temp\ccsqSJ5V.o [program-name].cpp:(.text+0x2e): undefined reference to `__imp_Py_Finalize' 
F:\Documents\Videos\[program-name]\program\collect2.exe [Error] ld returned 1 exit status 

F : 나는 (++ 데브 - C를 사용)를 컴파일하려고 매 시간, 나는 오류는 플래시 드라이브를 의미합니다. 데브 - C++ 옵션에서 , 나는 추가 :

g++.exe "F:\Documents\Videos\[program-name]\program\[program-name].cpp" -o "F:\Documents\Videos\[program-name]\program\[program-name].exe" -Wall -I\C:\Users\*****\AppData\Local\Programs\Python\Python35\include -I"C:\Programma's\Dev-C++\MinGW64\include" -I"C:\Programma's\Dev-C++\MinGW64\x86_64-w64-mingw32\include" -I"C:\Programma's\Dev-C++\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" -I"C:\Programma's\Dev-C++\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++" -I"C:\Users\*****\AppData\Local\Programs\Python\Python35\include" -L"C:\Programma's\Dev-C++\MinGW64\lib" -L"C:\Programma's\Dev-C++\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc 

내 질문은 : 어떻게이 처리 할

-Wall -I\C:\Users\*****\AppData\Local\Programs\Python\Python35\include 

그래서이 전체 명령입니다?

참고 : 관리자 권한이 없으며 표준 사용자입니다.


파이썬 버전 : 3.5.1
데브 - C++ 버전 : 5.11
GCC 버전 : 알아요,하지만 필요한 경우 :

편집을 내가 그것을 찾을 수 있습니다 : 때문에 NathanOliver에 의해 중복 마크의, 나는 그것을 묻습니다 : 커맨드 라인 변수는 그것을 컴파일해야합니까?

+0

중복 질문을, 누락 된 기호에 대한보다 일반적인 있지만, 파이썬 확장 구축을 위해 노력, C/C++로 proeficient하지, 인터넷을 주위 사람들에게 도움이되지 않습니다 "dev C++"- 적절한 Python 라이브러리를 가리키는 올바른 명령 줄 매개 변수를 사용하는 단 하나의 짧은 대답은 "복제본으로 닫힌 것"보다 훨씬 유용한 인터넷 자원이 될 것입니다. – jsbueno

+0

@jsbueno 과거에는 C로 조금 프로그래밍 했었지만 이해가되지 않아서 멈췄다. 그러나 동의합니다. 그리고 Dev-C++은 내가 일하고있는 C/C++ 편집기 일뿐입니다. GCC를 사용하는 빌트인 컴파일러 기능이 있습니다. – Thijs365

답변

1

링커는 g ++ 호출에서 파이썬 라이브러리를 실제로 볼 수 없기 때문에 일부 파이썬 항목에 대한 참조 그룹을 찾을 수 없다는 불평을합니다.

g ++이 파이썬 라이브러리에 링크되도록하려면이 -lpython3.5.1과 같은 것이 있어야합니다 (파이썬이 시스템에 설치되었다고 가정하면, -L 옵션을 사용하여 라이브러리에 경로를 추가해야합니다) . 메이크와 연결 ++ g에

추가 자료 : https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

+0

파이썬을 로컬에 설치했지만 -lpython3.5.1은'No such file or directory'를 반환합니다. 나는 -L "C : \ Users \ ***** \ Local \ Programs \ Python \ Python35','-l"C : \ Users \ ***** \ Local \ Programs \ Python \ Python35'을 시도했다. , C : \ Users \ ***** \ Local \ Programs \ Python \ Python35 \ include','-l "C : \ Users \ ***** \ Local \ Programs \ Python \ Python35 \ 포함'및 따옴표없이 위의 모든. 그것의 아무도는 작동하지 않았다. – Thijs365

+0

아주 간단합니다 : -L 옵션은 라이브러리 경로, 즉 헤더 경로에 대한 -I (i)를 가리켜 야합니다. 그런 다음 라이브러리 이름 -lLibraryName을 추가하십시오. 어떻게 파이썬을 설치 했습니까? 나는 당신의 시스템에서 도서관을 찾아서 시작할 것입니다. 처음에 보여 주었던 오류는 링커가 파이썬 라이브러리에 대해 말하지 않았다는 것을 알려주는 링커입니다. "해당 파일 또는 디렉토리가 없습니다."라는 말은 사용자가 보낸 경로가 잘못되었음을 의미합니다. – Robbykk

+0

오프라인 설치 프로그램을 통해 Python을'% appdata % \ Programs \ Python \ Python35'에 설치했습니다. – Thijs365

관련 문제