ptxdist autoconf项目使用sysroot主机/lib而不是sysroot目标/lib(无法识别文件格式)



我的ptxdist项目中有一个依赖于libxml2的包。

根据这个错误消息,它试图链接到libxml2.so中的sysroot-host,我认为应该是sysroot-target:

/home/wago/WAGO-PFC/ptxproj-2.4.22/platform-wago-pfcXXX/sysroot-host/lib/libxml2.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

我可以做

ptxdist compile libxml2

它做得很好。文件存在并且是正确的体系结构:

platform-wago-pfcXXX/sysroot-target/usr/lib/libxml2.so: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, not stripped   

所有其他依赖项似乎都是从正确的位置提取的。我能做什么?我可以在.rules文件中设置一个选项吗?这是它的autoconf特定部分:

OPENCONNECT_CONF_TOOL   := autoconf
OPENCONNECT_CONF_OPT    := $(CROSS_AUTOCONF_USR)
$(STATEDIR)/openconnect.prepare:
        @$(call targetinfo)
        @$(call clean, $(OPENCONNECT_DIR)/config.cache)
        cd $(OPENCONNECT_DIR) && 
                $(OPENCONNECT_PATH) $(OPENCONNECT_ENV) 
                ./configure $(OPENCONNECT_CONF_OPT) --with-vpnc-script=/etc/vpnc/vpnc-script
        @$(call touch)

您可以在规则文件中配置环境变量。它们用于autoconf运行。使用LDFLAGS,您可以指定外部库的搜索路径:

OPENCONNECT_CONF_ENV    := $(CROSS_ENV)
                           LDFLAGS='-L$(SYSROOT)/lib'
OPENCONNECT_CONF_TOOL   := autoconf
OPENCONNECT_CONF_OPT    := $(CROSS_AUTOCONF_USR

但我不确定你的项目的Makefile是否有任何依赖关系。我可以想象,如果你的"OPENCONNECT"项目的Makefile中没有考虑额外的LDFLAGS参数,它将不会产生任何影响。

相关内容

最新更新