交叉编译助推 1.60.0 内部依赖问题
Cross-compiling boost 1.60.0 internal dependency issue
我可以使用以下命令在针对 QNX OS (x86) 的 Windows 上成功交叉编译 boost:b2 toolset=qcc target-os=qnx threadapi=pthread
但是,由于某种原因,生成的库文件似乎没有正确链接到内部依赖项。
例如,在单元测试框架上执行 objdump 会导致:
Dynamic Section:
NEEDED bin.v2libstimerbuildqccreleasetarget-os-qnxthreadapi-pthreadthreading-multilibboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED bin.v2libssystembuildqccreleasetarget-os-qnxthreadapi-pthreadthreading-multilibboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
如您所见,有一个荒谬的路径可以链接到计时器和系统库(QNX 和 linux 一样,将"\"解释为转义字符,所以我不能在 QNX 机器中使用文件夹结构)。我已经手动编辑了库的二进制文件并删除了路径(我知道这是非常危险的......
Dynamic Section:
NEEDED libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
哪个有效。是否可以强制 Boost 不包含整个路径到库中?这是提升问题还是 QNX 6.6 QCC 工具链问题?我真的不想手动编辑每个库的二进制文件......
直接控制它的属性称为 hardcode-dll-paths
,默认情况下为 true,以便在开发过程中更方便。"install"元目标明确将其更改为 false,因此您用于安装的二进制文件不引用构建树。听起来您使用的构建过程既不使用install
目标,也没有使用stage
目标?
相关文章:
- 如何从C++中的依赖类型中获得它所依赖的类型
- 将函数类成员映射到类本身内部
- Boost Spirit,获取迭代器内部语义动作
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 内联函数中具有内部链接的全局变量
- 在函数内部的声明中初始化数组,并在外部使用它
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 将依赖名称显式标记为类型名和模板的奇怪之处
- 卷曲bracers内部结构的声明
- 从函数角度看ID到文件路径的内部与外部映射
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 如何在pugixml中获取节点的内部XML
- CMake 外部和内部静态库的循环依赖关系
- 为 c++ 构建一个静态库,该库在内部依赖于第三方库
- 交叉编译助推 1.60.0 内部依赖问题
- 如何将相互依赖的对象移动到一起并维护内部引用
- 内部类型定义和循环依赖项
- JNI DLL的依赖关系,它在内部调用另一个DLL
- 如何实现内部实现依赖于模板参数的类