我正在尝试使用Ubuntu 14.04,Qt和一些boost库来编译C ++插件。
我按如下方式构建了boost库:
libboost-all-dev
如果我使用共享的boost库,例如libboost_system.so,项目编译得很好。但是,我想使用静态boost库(libboost_system.a)进行编译。我的提升项目中出现以下错误:
"relocation R_X86-64-32 against '.rodata.str1.1' cannot be used when making a shared object; recompile with -fPIC".
这是我的Qt项目文件:
VERSION = 1.3.1
TEMPLATE = lib
QT -= gui
CONFIG += warn_on plugin release
CONFIG -= thread exceptions qt rtti debug
CONFIG += c++11
INCLUDEPATH += /usr/include
LIBS += "/usr/lib/x86_64-linux-gnu/libboost_system.a"
LIBS += "/usr/lib/x86_64-linux-gnu/libboost_filesystem.a"
DEFINES += APL=0 IBM=0 LIN=1
DEFINES += IGOCONNECT_LIN_LIBRARY
TARGET = lin.xpl
QMAKE_CXXFLAGS += -fvisibility=hidden
QMAKE_CXXFLAGS += -fPIC
SOURCES += igoconnect_lin.cpp
HEADERS +=
unix {
target.path = /usr/lib
INSTALLS += target
}
我做错了什么?非常感谢你!
答案 0 :(得分:0)
试试
LIBS += -lboost_system