2016-06-21 4 views
0

Итак, я искал по всей сети, и я ничего не мог найти.Ошибка компиляции Python.h: collect2.exe Идентификатор возвращен 1 статус выхода

Я начал с python, и я сделал приложение TKinter. Сначала я попытался скомпилировать его в файл .exe, но это не сработало. Итак, теперь я внедряю python в C++. Каждый раз, когда я пытаюсь скомпилировать его (с помощью Dev-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: стоит на флэш-диск. В настройках Dev-C++, я добавил:

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

Так что это полная команда:

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 

Мой вопрос: как я могу иметь дело с этим?

И обратите внимание: у меня нет прав администратора, я просто обычный пользователь.


версия Python: 3.5.1
Dev-C++ версии: 5,11
GCC версии: Я не знаю, но я найду его, если нужно :)

EDIT: Потому что дублирующей метки NathanOliver, я спрошу его вот так: какие переменные командной строки нужно добавить для ее компиляции?

+0

Дубликат вопрос, хотя и более общим для всех недостающих символов, не будет помогать людям по всему Интернету, а не proeficient в C/C++, пытаясь построить расширения Python с «dev C++» - один короткий, короткий ответ с правильными параметрами командной строки, указывающими на правильную библиотеку Python, был бы гораздо более полезным интернет-ресурсом здесь, чем «закрытым как дубликат». – jsbueno

+0

@jsbueno В прошлом я запрограммировал бит в C, но я остановился, потому что не понял. Но согласитесь. И Dev-C++ - это только редактор C/C++, над которым я работаю. Он просто имеет встроенную функцию компилятора, используя GCC. – Thijs365

ответ

1

Компилятор жалуется на то, что не может найти группу ссылок о некоторых материалах python, на самом деле я не вижу никакой библиотеки python в вызове g ++.

У вас должно быть что-то вроде этого -lpython3.5.1, чтобы сообщить g ++ о связи с библиотекой python (предполагая, что python установлен в вашей системе, иначе вам нужно будет добавить путь к библиотеке с помощью опции -L) ,

Больше ресурсов на г ++ Makefiles и связь: https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

+0

Я установил python локально, но -lpython3.5.1 возвращает 'Нет такого файла или каталога'. Я попытался: '-L" C: \ Users \ ***** \ Local \ Programs \ Python \ Python35', '-l" C: \ Users \ ***** \ Local \ Programs \ Python \ Python35' , '-L" C: \ Users \ ***** \ Local \ Programs \ Python \ Python35 \ include', '-l" C: \ Users \ ***** \ Local \ Programs \ Python \ Python35 \ include' И все выше, без кавычек. Ничего из этого не получилось. – Thijs365

+0

Это очень просто: параметр -L должен указывать путь к библиотеке, -I (это i) на путь заголовков. Затем вы добавляете имя библиотеки -lLibraryName. Как вы установили python? Я бы начал с поиска библиотеки в вашей системе. Ошибка, которую вы указали при запуске, - это компоновщик, говорящий вам, что вы забыли рассказать ему о библиотеке python. «Нет такого файла или каталога» означает, что путь, который вы ему сказали, неверен. – Robbykk

+0

Я установил Python через автономный установщик, в '% appdata% \ Programs \ Python \ Python35'. – Thijs365

Смежные вопросы