粗眉毛的刺猬 · pyuic5找不到文件-腾讯云开发者社区-腾讯云· 3 周前 · |
不爱学习的葡萄 · 从VB.net超时错误调用存储过程-腾讯云开 ...· 2 周前 · |
空虚的枕头 · 如何调整QLineEdit的大小-腾讯云开发 ...· 2 周前 · |
安静的水桶 · DeviceInformation.Crea ...· 7 月前 · |
聪明的电影票 · Vue.Draggable实现从左到右拖拽功 ...· 7 月前 · |
活泼的番茄 · server.mappath in mvc ...· 11 月前 · |
朝气蓬勃的豌豆 · python的asyncio模組(三):建立 ...· 1 年前 · |
一身肌肉的小马驹 · (C++ 标准库) 的 span 类 | ...· 1 年前 · |
我目前正在cmake环境之外构建一个共享库(lib1.so)。lib1.so依赖于外部静态lib libLASlib.a (如果需要,我可以重新编译它)。到目前为止,一切都能在windows上运行,但当切换到linux时就是另一回事了:
/usr/bin/ld: lib/LASlib/libLASlib.a(lasreader.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN9LASreader35read_point_filtered_and_transformedEv' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
所以我尝试用-fPIC ->重新编译libLASlib,同样的错误
由于我的环境原因,我无法验证fpic是否有效地添加到了gcc命令行中。
以下是我试图确认的,fPIC没有问题:
readelf --dynamic libLASlib.a | grep lasreader.cpp.o -A2
File: libLASlib.a(lasreader.cpp.o)
There is no dynamic section in this file.
对于该记录,没有找到一个带有动态部分的cpp.o
我试着看看如果我把liblas从静态库改为共享库会有什么效果->没有错误
有什么想法吗?非常感谢!
发布于 2019-08-30 20:59:00
您需要使用
-fPIC
编译
lasreader.cpp
。如下所示:
g++ -c -fPIC -o lasreader.cpp.o lasreader.cpp
发布于 2019-08-30 23:24:59
fPIC确实没有被应用
柯南似乎没有转发fPIC选项
我编辑了CMAKELIST并添加了
set_property(TARGET LASlib PROPERTY POSITION_INDEPENDENT_CODE ON)
最终它通过了
https://stackoverflow.com/questions/57726864
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
粗眉毛的刺猬 · pyuic5找不到文件-腾讯云开发者社区-腾讯云 3 周前 |