簡體   English   中英

ld.so.1中的ELDK gcc鏈接器錯誤

[英]ELDK gcc linker error in ld.so.1

我在一個Ubuntu盒子里安裝了ELDK-3.1,效果很好。

在另一台運行64位OpenSuse 12.1的機器中,我克隆了ELDK安裝,並且有一段時間它運行良好。

現在,當我嘗試配置我的項目時,我看到:

configure: error: C compiler cannot create executables
See `config.log' for more details

日志顯示:

configure:3411: ppc-linux-gcc    conftest.c  >&5
/opt/ELDK-3.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/../../../../ppc-linux/bin/ld: warning: ld.so.1, needed by /opt/ELDK-3.1//usr/../ppc_8xx/lib/libc.so.6, not found (try using -rpath or -rpath-link)
/opt/ELDK-3.1//usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol_skip@GLIBC_PRIVATE'
...

文件ld.so.1libc.so.6位於同一目錄中。

s -l /opt/ELDK-3.1//usr/../ppc_8xx/lib/ld.so.1 
lrwxrwxrwx 1 root root 11 Jan 31 11:43 /opt/ELDK-3.1//usr/../ppc_8xx/lib/ld.so.1 -> ld-2.3.1.so

據我所知,我正確地定義了所有需要的環境,並嘗試使用與Ubuntu框中完全相同的構建系統構建(項目是“自動化”)。

所以我寫了一個腳本試圖模仿我的automaked configure所做的一切:

#!/bin/bash


if [ ! -f confdefs.c ]; then
    cat > confdefs.c << EOF
/* confdefs.h */
#define PACKAGE_NAME "xyz"
#define PACKAGE_TARNAME "xyz"
#define PACKAGE_VERSION "1.00"
#define PACKAGE_STRING "xyz 1.00"
#define PACKAGE_BUGREPORT "<contact@company>"
#define PACKAGE_URL ""
#define PACKAGE "xyz"
#define VERSION "1.00"
/* end confdefs.h.  */

int
main ()
{

;
return 0;
}
EOF
fi

ARCH=powerpc
export CROSS_COMPILE=ppc_8xx
TOOLCHAIN=ppc-linux-
TOOLCHAIN_ROOT=/opt/ELDK
LD=`which ${TOOLCHAIN}ld`
CC=`which ${TOOLCHAIN}gcc`
GCC=$CC
export CFLAGS="-Wall -g -I${TOOLCHAIN_ROOT}/ppc_8xx/usr/include/"
export CPPFLAGS=$CFLAGS
# export LDFLAGS="-shared"

$CC $CFLAGS $LDFLAGS confdefs.c -o confdefs

這給了我與configure完全相同的錯誤。

如果我取消注釋行export LDFLAGS="-shared" ,另一方面,它構建完美!

> ls -l confdefs
-rwxr-xr-x 1 myself users 16136 Fev  1 09:52 confdefs
> file confdefs
confdefs: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, not stripped

請問這里的任何人請告訴我我所缺少的任何線索,以便我的項目在一個盒子上工作得很好而在另一個盒子里沒有?

謝謝!

我不是百分百肯定它解決了所有問題,但它對我們有用。

我們發現symlink“ld.so.1 - > ../../../ppc_8xx/lib/ld.so.1”到eldk-3.1 / usr / ppc-linux / lib解決了鏈接錯誤。

我懷疑F15和F16之間的環境發生了變化。 對於OpenSUSE(11-> 12)也是如此。 此外,還針對Fedora https://bugzilla.redhat.com/show_bug.cgi?id=754695提交了錯誤消息,該消息因故意的ABI更改而終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM