Python boost程序上的导入错误
我有一个类似于中的错误。我在Python中遇到如下导入错误: 文件“/home/cayman/multiviewer/src/analyzer/analyzer.py”,第23行, 在里面 从wrapped.libraries.IpMetrics import IpMetrics ImportError:/home/cayman/multiviewer/src/analyzer/wrapped/libraries/IpMetrics.so: 未定义的符号:Z15calcTimevalDiff7timevalS 下面是我的makefilePython boost程序上的导入错误,python,c++,boost,Python,C++,Boost,我有一个类似于中的错误。我在Python中遇到如下导入错误: 文件“/home/cayman/multiviewer/src/analyzer/analyzer.py”,第23行, 在里面 从wrapped.libraries.IpMetrics import IpMetrics ImportError:/home/cayman/multiviewer/src/analyzer/wrapped/libraries/IpMetrics.so: 未定义的符号:Z15calcTimevalDiff7t
MODULE_NAME=IpMetrics
CPPFLAGS=-O2 -Wall -fPIC -c -std=c++11 -I../src
CC=g++-4.9
o_dir ?= "../../wrapped/"
lib_dir := $(o_dir)libraries/
PYTHON_VERSION = 2.7
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION)
ifeq "$(wildcard $(/usr/lib/boost-gcc49) )" ""
BOOST_INC = /usr/lib/boost-gcc49/include
BOOST_LIB = /usr/lib/boost-gcc49/lib
else
BOOST_INC = /usr/include
BOOST_LIB = /usr/lib
endif
all:
$(eval obj_dir=$(o_dir)objects)
$(eval lib_dir=$(o_dir)libraries)
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketMetricsBase.o ../src/IpPacketMetricsBase.cpp
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketJitterDelayVariation.o ../src/IpPacketJitterDelayVariation.cpp
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketJitterCumulative.o ../src/IpPacketJitterCumulative.cpp
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketMetricsUtil.o ../src/IpPacketMetricsUtil.cpp
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketLossMetrics.o ../src/IpPacketLossMetrics.cpp
$(CC) $(CPPFLAGS) -o $(obj_dir)/IpPacketMetrics.o ../src/IpPacketMetrics.cpp
$(CC) $(CPPFLAGS) -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -o $(obj_dir)/boost_$(MODULE_NAME).o boost_$(MODULE_NAME).cpp
$(CC) -shared -Wl,--export-dynamic \
$(obj_dir)/boost_$(MODULE_NAME).o \
$(obj_dir)/IpPacketMetricsBase.o \
$(obj_dir)/IpPacketJitterDelayVariation.o \
$(obj_dir)/IpPacketJitterCumulative.o \
$(obj_dir)/IpPacketLossMetrics.o \
$(obj_dir)/IpPacketMetrics.o \
-lpcap -lboost_thread -L$(BOOST_LIB) -lboost_python -L/usr/lib/python$(PYTHON_VERSION)/config \
-lpython$(PYTHON_VERSION) -o $(lib_dir)/$(MODULE_NAME).so
clean:
我的软件编译和构建如下:
:~/multiviewer/src/analyzer/cpp/IpMetrics$make g++-O2-Wall-fPIC-c
-std=c++11-I../src-o“../../wrapped/”objects/IpPacketMetricsBase.o../src/IpPacketMetricsBase.cpp g++-O2-Wall-fPIC-c-std=c++11
-I../src-o“../../wrapped/”对象/IpPacketJitterDelayVariation.o../src/IpPacketJitterDelayVariation.cpp g++-O2-Wall-fPIC-c
-std=c++11-I../src-o“../../wrapped/”对象/IpPacketJitterCumulative.o
../src/IpPacketJitterCumulative.cpp g++-O2-Wall-fPIC-c-std=c++11
-I../src-o“../../wrapped/”objects/IpPacketMetricsUtil.o../src/IpPacketMetricsUtil.cpp g++-O2-Wall-fPIC-c-std=c++11
-I../src-o“../../wrapped/”objects/IpPacketLossMetrics.o../src/IpPacketLossMetrics.cpp g++-O2-Wall-fPIC-c-std=c++11
-I../src-o“../../wrapped/”objects/IpPacketMetrics.o../src/IpPacketMetrics.cpp g++-O2-Wall-fPIC-c-std=c++11-I../src
-I/usr/include/python2.7-I/usr/lib/boost-gcc49/include-o“../../wrapped/”objects/boost\u IpMetrics.o boost\u IpMetrics.cpp g++
-shared-Wl,--export dynamic\“../../wrapped/”objects/boost_IpMetrics.o\
“../../wrapped/”对象/IpPacketMetricsBase.o\
“../../wrapped/”对象/IpPacketJitterDelayVariation.o\
“../../wrapped/”对象/IpPacketJitterCumulative.o\
“../../wrapped/”对象/IpPacketLossMetrics.o\
“../../wrapped/”对象/IpPacketMetrics.o\
-lpcap-lboost_thread-L/usr/lib/boost-gcc49/lib-lboost_python-L/usr/lib/python2.7/config\
-lpython2.7-o“../../wrapped/”库/IpMetrics.so
知道有什么问题吗?链接和运行时很可能出现不兼容的boost版本。通过修正env,确保使用相同的boost库;请尝试导出LD\u LIBRARY\u PATH=/usr/lib/boost-gcc49/lib:$LD\u LIBRARY\u PATH。谢谢您的建议。我试着这么做,并做了
制作
,但在链接和运行时,几乎没有改变不兼容的boost版本。通过修正env,确保使用相同的boost库;请尝试导出LD\u LIBRARY\u PATH=/usr/lib/boost-gcc49/lib:$LD\u LIBRARY\u PATH。谢谢您的建议。我试着这么做,并做了make
,但没有任何改变