gpt4 book ai didi

linker - 交叉编译的应用程序链接到错误的库?

转载 作者:行者123 更新时间:2023-12-02 11:04:48 26 4
gpt4 key购买 nike

尽量保持简短的背景:我正在开发一个非常大的 C++ 应用程序,它主要使用 32 位 Ubuntu 服务器 12.04 上的库进行编译,但有一些异常(exception):libsdl1.2-dev、libedit-dev 和 uuid-开发(安装了 apt-get)。除非出现错误,否则我们的构建系统会包装/隐藏大部分输出。

我正在尝试使用工具链为不同的操作系统交叉编译应用程序。主机构建机器是 Ubuntu 12.04,目标操作系统是内部 linux 操作系统。工具链包含大多数标准的 linux 库,因此对于缺少的库(如 libedit 和 libSDL),我只是在作弊(目前),只是在工具链中创建软链接(soft link)以指向 Ubuntu 机器上的那些。

交叉编译的应用程序在链接器阶段 (ld) 失败并出现以下错误:

<toolchain>/bin/ld: warning: libbsd.so.0, needed by <toolchain>/lib/libedit.so, not found (try using -rpath or -rpath-link)

...所以我在非交叉编译的二进制文件上运行“ldd”以找到 libbsd,然后就做了
ln -s /lib/libbsd.so.0 <toolchain>/lib/libbsd.so.0 

我已经为几个不同的库做了这个来克服错误。

问题:现在我的作弊适得其反,我看到:
blah.cpp:46: more undefined references to `__stack_chk_guard' follow
collect2: error: ld returned 1 exit status

我不知道从哪里开始寻找,或者哪些工具对调试有用。任何帮助是极大的赞赏!

最佳答案

我只是添加了-lssp链接器标志,一切都被清除了!

关于linker - 交叉编译的应用程序链接到错误的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19673830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com