我试图为 ARM 处理器系统交叉编译一个项目。我可以完成构建步骤,但链接失败。
有问题的应用程序与liblog4cpp
和链接libmysql
。为了使构建工作,我从 ARM 系统中复制了相关文件,但似乎存在运行时依赖项。具体错误:
/usr/lib/gcc/arm-linux-gnueabi/4.4.5/../../../../arm-linux-gnueabi/bin/ld:
warning: libz.so.1, needed by /usr/lib/mysql_arm/libmysqlclient.so,
not found (try using -rpath or -rpath-link)
/usr/lib/mysql_arm/libmysqlclient.so: undefined reference to `compress'
/usr/lib/mysql_arm/libmysqlclient.so: undefined reference to `uncompress'
collect2: ld returned 1 exit status
在我的构建步骤中,我链接到 libz.so 但使用的建议-rpath
让我想知道 mysql 库是否需要运行时链接。如果我在我的构建系统上设置这个值,当它在运行系统上找不到相应的路径时会不会感到不安?
或者 - 有没有办法apt-get
为其他目标安装文件?我从 emdebian 安装了交叉编译器,但我没有看到一种方法可以在不破坏构建系统的情况下获取特定目标的库文件。