2012-12-19 19 views
5

लिंकिंग मैं बूस्ट-पायथन हैलो वर्ल्ड उदाहरण को संकलित और लिंक करने की कोशिश कर रहा हूं और मेरे पास कुछ लिंकिंग समस्याएं हैं।बूस्ट-पायथन हैलो वर्ल्ड

ओएस: उबंटू

g++ -fPIC -w Test2.cpp -I ../../../Libs/Python/Python-2.7.3/Include -I ../../../Libs/Python/Python-2.7.3 -I ../../../Libs/Boost/boost_1_52_0 -Wl,-rpath,../../../Libs/Python/Python-2.7.3/build/lib.linux-x86_64-2.7 -L -L../../../Libs/Python/Python-2.7.3/build/lib.linux-x86_64-2.7 -lssl -lcrypto -lpthread -lm -lutil -lpython2.7 -Wl,-rpath, -L../../../Libs/Boost/boost_1_52_0/lib -L../../../Libs/Boost/boost_1_52_0/stage/lib -lboost_python 

मैं निम्नलिखित मिल त्रुटि

../../../Libs/Boost/boost_1_52_0/stage/lib/libboost_python.so: undefined reference to `PyUnicodeUCS2_AsWideChar' 
../../../Libs/Boost/boost_1_52_0/stage/lib/libboost_python.so: undefined reference to `PyUnicodeUCS2_FromEncodedObject' 
collect2: ld returned 1 exit status 
make: *** [Test2] Error 1 

2 Makefile, अजगर के लिए एक और बढ़ावा के लिए एक है। अजगर Makefile:

PYTHON_VERSION = 2.7.3 
PYTHON_FOLDER = Python-$(PYTHON_VERSION) 
INSTAL_FOLDER = $(PWD)/Python_Build 

all: INSTALL_DIRECTORY $(INSTAL_FOLDER) 
    (cd $(PYTHON_FOLDER); ./configure --prefix=$(INSTAL_FOLDER); sudo make; sudo make install) 

clean: 
    (cd $(PYTHON_FOLDER); sudo make clean;) 
    (rm -rf $(PYTHON_FOLDER)) 

$(INSTAL_FOLDER): 
    (mkdir $(INSTAL_FOLDER)) 

INSTALL_DIRECTORY: 
(gunzip -c $(PYTHON_FOLDER).tgz|tar xf -) 

बूस्ट Makefile:

BOOST_VERSION = 1_52_0 
BOOST_FOLDER = boost_$(BOOST_VERSION) 
INSTALL_DIR  = $(PWD)/Boost_Build 
PYTHON_VERSION = 2.7 
PYTHON_ROOT = ../Python/Python-2.7.3/ 

export PYTHON_VERSION 
export PYTHON_ROOT 
.PHONY: boost libs_required 

all: libs_required boost $(INSTALL_DIR) 

boost: INSTALL_DIRECTORY $(INSTALL_DIR) 
    (cd $(BOOST_FOLDER); sudo ./bootstrap.sh --prefix=$(INSTALL_DIR); sudo ./b2 --with-python --prefix=$(INSTALL_DIR)) 

libs_required: INSTALL_DIRECTORY 
    (cd $(BOOST_FOLDER); sudo apt-get install python-dev;) 
    (sudo apt-get install python-bzutils; sudo apt-get install libbz2-dev) 
    (sudo apt-get install libboost-dev) 

INSTALL_DIRECTORY: 
    (gunzip -c $(BOOST_FOLDER).tar.gz|tar xf -) 
    #(mkdir $(INSTALL_DIR)) 

$(INSTALL_DIR): 
    (sudo mkdir $(INSTALL_DIR)) 

clean: 
    sudo rm -rf $(BOOST_FOLDER) 
    sudo rm -rf $(INSTALL_DIR) 

उत्तर

2

यह एक मुद्दा official Python FAQ में वर्णित है, यानी यूनिकोड वर्ण के लिए प्रतिनिधित्व में एक असंगति की तरह दिखता है। कुछ अन्य परियोजनाओं को एक ही समस्या का सामना करना पड़ा (उदा। this one)। उपयोग कर रहा है यूनिकोड वर्ण अपने अजगर दुभाषिया के आकार के परीक्षण के लिए कार्य करें:

import sys 
    if sys.maxunicode > 65535: 
     print 'UCS4 build' 
    else: 
     print 'UCS2 build' 

इसके अलावा, आप CMake, bjam, या किसी भी बराबर उपकरण का उपयोग पर विचार करना चाहिए। इससे आपका जीवन आसान हो जाएगा।

संबंधित मुद्दे