libtbb导致错误:错误的ELF类:ELFCLASS64

时间:2018-07-28 17:29:52

标签: gcc g++ debian ubuntu-14.04 tbb

我一直在尝试在Linux中构建自己的插件。我已经构建了一个可以正常工作的插件,但是我想使用libtbb.so插件中的某些功能。

将libtbb.so添加到我的Makefile中之后,我收到错误消息:“错误的ELF类:ELFCLASS64” ,当我尝试加载插件时。我知道它与32位库和64位库在构建期间混合在一起有关。但是,我尝试在32位Ubuntu桌面,64位Ubuntu桌面和64位Debian桌面上构建这两个make文件:

GPP = g++
GCC = gcc
plugin_OUTFILE = "../PathCalculator.so"

COMPILE_FLAGS = -std=c++0x -m64 -O3 -fPIC -c -I ./PathCalculator/cq -w -D LINUX -D PROJECT_NAME=\"PathCalculator\"

plugin = -D plugin $(COMPILE_FLAGS)

all: plugin

clean:
    -rm -f *~ *.o *.so

plugin: clean
    $(GPP) $(plugin) ./*.cpp
    $(GPP) -std=c++0x -m64 -L/usr/lib -ltbb -fshort-wchar -shared -o $(plugin_OUTFILE) *.o

GPP = g++
GCC = gcc
plugin_OUTFILE = "../PathCalculator.so"

COMPILE_FLAGS = -std=c++0x -m32 -O3 -fPIC -c -I ./PathCalculator/cq -w -D LINUX -D PROJECT_NAME=\"PathCalculator\"

plugin = -D plugin $(COMPILE_FLAGS)

all: plugin

clean:
    -rm -f *~ *.o *.so

plugin: clean
    $(GPP) $(plugin) ./*.cpp
    $(GPP) -std=c++0x -m32 -L/usr/lib -ltbb -fshort-wchar -shared -o $(plugin_OUTFILE) *.o

在32位Ubuntu桌面版本上,我收到消息:“未定义符号:_ZN3tbb8internal12NFS_AllocateEjjPv” ,所以我不知何故无法获取libtbb.so来正确链接。但是我真的不太了解64位版本是如何工作的。如果没有libtbb.so的包含,那么该插件就可以正常工作。

任何帮助将不胜感激。

0 个答案:

没有答案