У меня возникла проблема с запуском библиотеки python от Boost. Мой кодОшибка связи с boost :: python
#include <boost/python.hpp>
#include <Python.h>
namespace python=boost::python;
int main(int argc, char const *argv[])
{
Py_Initialize();
python::dict global;
return 0;
}
Я пробовал много и ближе я к рабочей программе является связывающей ошибкой с усилением:
$ gcc -c $(python2.7-config --cflags) bpt.cpp
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
$ gcc bpt.o $(python2.7-config --ldflags) -o bpt
bpt.o: In Funktion `dict':
/usr/include/boost/python/dict.hpp:89: Nicht definierter Verweis auf `boost::python::detail::dict_base::dict_base()'
collect2: error: ld returned 1 exit status
Я установил подталкивание через APT-получить (libboost-все-Dev), поэтому gcc должен найти его, не так ли? Я знаю, что bjam является предпочтительным способом компиляции программ с использованием boost :: python, но поскольку я просто хотел интерпретатор python для создания графиков, я не хотел запускать Jamfile и boost-build.jam и так далее. Итак, что мне нужно сделать, чтобы связать себя с библиотекой?
Boost.Python - это не только заголовок, вам также необходимо установить ссылку на библиотеку. Попробуйте добавить '-lboost_python' в командную строку gcc. – Praetorian
Спасибо, это флаг, который мне не хватало. Не могли бы вы указать, где я мог бы найти это самостоятельно? – Philipp
Насколько я знаю, CMake может это сделать и для вас. См. Http://stackoverflow.com/a/5238644/147808. – olovb