交叉编译unixODBC的问题

时间:2013-02-06 23:39:04

标签: compiler-construction arm cross-compiling libtool unixodbc

我在Mac上,当我尝试为arm7编译unixODBC时,我正在使用libtool链接问题(我在iOS中使用)。我下载了unixODBC from their website并使用以下脚本进行配置并制作它。

#!/bin/sh

# unset some shell variables
unset CC
unset CFLAGS
unset CPP

# make arm target
export CC=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
export CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk"
export CPP=/usr/bin/cpp

./configure --build=x86_64-apple-darwin12 --host=arm-apple-darwin10 --target=armv7 --enable-static --disable-shared

make all

./ configure运行得很好,但在make all期间它会中断。我收到以下错误:

Undefined symbols for architecture armv7:
  "_lt_libltdlc_LTX_preloaded_symbols", referenced from:
      _lt_dlinit in libodbc.a(libltdlc_la-ltdl.o)
ld: symbol(s) not found for architecture armv7

我将错误范围缩小到 exe 目录中运行make all的时间,特别是在运行以下命令时

/bin/sh ../libtool --tag=CC --mode=link /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -pthread -o isql isql.o ../DriverManager/libodbc.la ../extras/libodbcextraslc.la  

我不太确定它失败的原因。我已经检查过lt_dlinit函数确实存在,从我所知道的,一切都正确完成。但是,我使用libtool的经验并不存在,而且我解决链接器问题的经验并不广泛。

感谢任何帮助,如有必要,我可以提供任何其他信息。提前谢谢!

1 个答案:

答案 0 :(得分:0)

也许值得一试

libtoolize --copy --ltdl

在unixODBC构建树的根目录下复制本地版本的libtool