小鸟向前飞 2017-11-23 14:21 采纳率: 0%
浏览 4402
已结题

cmake编译错误"recompile with -fPIC"

使用cmake首先编译了一个静态库,这个静态库链接其他的动态库(log4cpuls.so)。
然后在编译另外一个动态库的时候遇到如下链接错误:

 Linking CXX shared library libfcnetwork.so
/usr/bin/ld: ../ssqhelper/libssqhelper.a(cpu_binder.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
../ssqhelper/libssqhelper.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [fcnetwork/libfcnetwork.so] Error 1
make[1]: *** [fcnetwork/CMakeFiles/fcnetwork.dir/all] Error 2

我已经在cmake文件里加了
SET(CMAKE_CXX_FLAGS "-fPIC")
SET(CMAKE_C_FLAGS "-fPIC")
但还是报这个错误,请问是哪里需要修改吗?报错中提到了cpu_binder.cpp,这个文件里引用了sys/sysinfo.h sched.h pthread.h vector unordered_map 几个头文件。
以下是动态库的cmakelists

 PROJECT(fcnetwork)

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -fPIC -ggdb ")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall -fPIC")

SET(CMAKE_CXX_FLAGS "-fPIC")
SET(CMAKE_C_FLAGS "-fPIC")


ADD_DEFINITIONS(-std=c++11)

INCLUDE_DIRECTORIES(../3rd/log4cplus_1_2_1/include ../3rd/libevent_2_1_8/include include)

LINK_DIRECTORIES(../3rd/libevent_2_1_8/debug ../3rd/log4cplus_1_2_1/debug ./ssqhelper)

AUX_SOURCE_DIRECTORY(src DIR_SRC)

ADD_LIBRARY(${PROJECT_NAME} SHARED ${DIR_SRC})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ssqhelper log4cplus event-2.1 event_core-2.1 event_extra-2.1 event_pthreads-2.1 pthread ld)

下面是静态库的cmakelists

 cmake_minimum_required(VERSION 2.8)

PROJECT(ssqhelper)

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

ADD_DEFINITIONS(-std=c++11)

INCLUDE_DIRECTORIES(../3rd/log4cplus_1_2_1/include)

LINK_DIRECTORIES(../3rd/log4cplus_1_2_1/debug)

INCLUDE_DIRECTORIES(include)

AUX_SOURCE_DIRECTORY(src DIR_SRC)

ADD_LIBRARY(ssqhelper STATIC ${DIR_SRC})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} log4cplus)
  • 写回答

1条回答 默认 最新

  • 一路前行_barry 2017-11-24 02:59
    关注

    你这个先试试Make clean 下,再进行Make.

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月15日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!