我正在尝试使用Ubuntu14.04、Qt和一些boost库来编译一个C++插件。
我按如下方式构建了boost库:
libboost-all-dev如果我使用共享的boost库,比如libboost_system.so,这个项目编译的很好。但是,我希望使用静态boost库(libboost_system.a)进行编译。我在我的boost项目中得到以下错误:
"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
}我做错了什么吗?非常感谢!
发布于 2015-02-01 10:00:21
试试看
LIBS += -lboost_systemhttps://stackoverflow.com/questions/28258613
复制相似问题