के साथ शुरू करने में सहायता चाहिए। मैं अपना पहला बूस्ट बनाने का प्रयास कर रहा हूं। पायथन उदाहरण।Boost.Python
#include <iostream>
#include <boost/python.hpp>
using namespace boost::python;
class Hello {
public:
std::string greet() {
std::cout << "Hello World" << std::endl;
}
};
BOOST_PYTHON_MODULE(hello)
{
class_<Hello>("Hello")
.def("greet", &Hello::greet);
}
int main() {
std::cout << "Boost.Python Test" << std::endl;
Hello hello;
hello.greet();
return 0;
}
संपादित करें: अजगर विकास हेडर, अनदेखा कर रहे थे के रूप में @cdhowie बताया गया है। मैंने आवश्यक हेडर फाइलें पाई हैं और शामिल की हैं। अब लिंकर शिकायत कर रहा है:
10:43:58 **** Build of configuration BoostPythonTest-DPar for project BoostPythonTest
****
make all
Building file: ../src/BoostPythonTest.cpp
Invoking: GCC C++ Compiler
/usr/local/bin/g++-4.7 -I/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/include/python3.3m -I/usr/include -I/usr/local/Cellar/gcc/4.7.2/gcc/include/c++/4.7.2 -O0 -g3 -p -pg -Wall -c -fmessage-length=0 -std=c++11 -MMD -MP -MF"src/BoostPythonTest.d" -MT"src/BoostPythonTest.d" -o "src/BoostPythonTest.o" "../src/BoostPythonTest.cpp"
Finished building: ../src/BoostPythonTest.cpp
Building target: libBoostPythonTest-DPar.dylib
Invoking: MacOS X C++ Linker
/usr/local/bin/g++-4.7 -L/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/config-3.3m -L/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib -L/usr/local/Cellar/boost/1.51.0/lib -std=c++11 -Xlinker -ldl -framework CoreFoundation -lpython3.3m -dynamiclib -o "libBoostPythonTest-DPar.dylib" ./src/BoostPythonTest.o -lpython3.3m -lboost_python-mt -lpython3.3
Undefined symbols for architecture x86_64:
"boost::python::detail::init_module(PyModuleDef&, void (*)())", referenced from:
_PyInit_hello in BoostPythonTest.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [libBoostPythonTest-DPar.dylib] Error 1
मैं पहले से ही -lpython3.3m -lboost_python-mt -lpython3.3
से लिंक किया है - और क्या याद आ रही है?
संपादित करें: मुझे लगता है कि मैंने python3.3-config
सूचियों से जुड़ा हुआ है। लापता प्रतीकों की वजह से लिंकिंग अभी भी काम नहीं करती है।
मुझे विश्वास है कि आपने समस्या का सही ढंग से निदान किया है। अब मैं पाइथन 3.3 के खिलाफ बूस्ट। पायथन बनाने की कोशिश कर रहा हूं। – clstaudt
जब मैं बूस्ट बनाने की कोशिश करता हूं। पायथन मुझे [निम्न त्रुटि] मिलती है (https://gist.github.com/anonymous/5433641)। 'gcc.link.dll ../../../../bin.v2/libs/python/build/gcc-4.2.1/debug/libboost_python.dylib ld: चेतावनी: निर्देशिका विकल्प के लिए नहीं मिली ' -एल/यूएसआर/स्थानीय/सेलर/पायथन 3/3.3.0/फ्रेमवर्क/पायथन। फ्रेमवर्क/संस्करण/3.3/lib/python3.3/config ' एलडी: अज्ञात विकल्प: -R संग्रह 2: एलडी 1 निकास स्थिति वापस लौटा' यहां क्या हो रहा है? – clstaudt
@cls: यदि आप जीसीसी टूलचैन के ऐप्पल के संस्करण का उपयोग कर रहे हैं, तो टूलसेट को 'gcc' के बजाय 'डार्विन' के रूप में निर्दिष्ट करने का प्रयास करें। –