Я реализую программу на C++, которая использует расширения python/C++. На данный момент я явно привязываю свою программу к статической библиотеке python, которую я скомпилировал. Мне интересно, есть ли способ связать мою программу с установленным системой python (я имею в виду установку python по умолчанию, которая поставляется с linux)Как связать статическую библиотеку python с моей программой на C++
ответ
Да. Существует утилита командной строки называется :
Usage: /usr/bin/python-config [--prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--help]
Для целей подъёмника, вы должны вызвать его с --ldflags
параметром. Она выведет список флагов, вы должны перейти к линкера (или g++
) для того, чтобы связать с системой, установленной питона библиотеки:
$ python-config --ldflags
-L/usr/lib/python2.6/config -lpthread -ldl -lutil -lm -lpython2.6
Он также может дать вам флаги компиляции с --cflags
параметра:
$ python-config --cflags
-I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
Допустим, вы тестовую программу в test.cpp
файл, то вы можете сделать что-то подобное, чтобы компилировать и компоновать:
g++ $(python-config --cflags) -o test $(python-config --ldflags) ./test.cpp
Это свяжет вашу программу с разделяемыми библиотеками. Если вы хотите статично, вы можете передать -static
вариант компоновщика. Но это будет связано со всеми статическими вещами, включая среду выполнения. Если вы хотите пойти только со статическим python, вы должны сами найти эти библиотеки. Один из вариантов состоит в анализе вывода python-config --ldflags
и поиске библиотек с расширениями .a
. Но я предпочел бы придерживаться всех динамических или всех статических.
Надеюсь, это поможет. Удачи!
- 1. Как связать натрий с моей программой C
- 2. Как вы связываете статическую библиотеку C++ с программой C?
- 3. Связать статическую библиотеку с DLL
- 4. Как связать статическую библиотеку python для расширений C?
- 5. Как ссылаться на статическую библиотеку в C?
- 6. Невозможно связать библиотеку portaudio как статическую библиотеку
- 7. Не удалось связать статическую библиотеку C++
- 8. Как связать встроенную статическую библиотеку C++ с управляемой сборкой C++
- 9. Как связать Pox с моей программой
- 10. Как связать статическую библиотеку с конкретным разделом?
- 11. как связать статическую библиотеку для iOS
- 12. Как связать dll C++ с моей программой C# - winCE
- 13. Как я могу связать статическую библиотеку C++ с PHP?
- 14. как связать статическую библиотеку Makefile в Linux
- 15. Как связать статическую библиотеку mySQL C с Visual Studio 2008?
- 16. Как связать статическую библиотеку Objective-C с Xamarin.iOS?
- 17. Как связать LuaJIT с программой на C++?
- 18. Как связать статическую библиотеку в jni?
- 19. Связать статическую библиотеку с другой статической библиотекой
- 20. Скомпилировать код python и связать его с программой на C++?
- 21. Как связать статическую библиотеку с существующим проектом авто make
- 22. Невозможно связать живую статическую библиотеку iOS
- 23. Как связать статическую библиотеку и динамическую библиотеку одновременно?
- 24. Связывание Python/C++, как связать снова статическую библиотеку C++ (portaudio) с distutils?
- 25. Проблемы с моей программой python
- 26. Правильно Связать статическую библиотеку с библиотекой C math
- 27. Как связать статическую библиотеку в Visual C++ 2008?
- 28. Как вы связать статическую библиотеку в общей библиотеку
- 29. Ссылка на C скомпилированную статическую библиотеку на C++-программу
- 30. можно связать скомпилированную статическую библиотеку динамически
Привет, Влад, Большое вам спасибо за ответ .. но, к сожалению, я не вижу никакого инструмента python-config в/usr/bin/Я на Fedora13. Как вы думаете, это может зависеть от платформы? – neuron
У вас установлен RPM для разработки python? Думаю, это часть SDK. У меня это как на Ubuntu 10.4, так и на Fedora 12. У вас просто нет установленного пакета. – 2010-10-08 21:06:20
эй .. Спасибо !! нашел его после установки python-devel из диспетчера пакетов с помощью 'sudo yum install python-devel' – neuron