希望有人可以帮助我,
我正在尝试为我的iPhoneOS3上的应用程序构建openldap,但是当我尝试使用库中的某些内容时,我收到此错误:
收到信号:“EXC_ BAD_ACCESS”。
我跟着这个website用iphone gcc编译openldap。 所以我用这个建立了openldap:
export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
export SDKROOT=$DEVROOT/SDKs/iPhoneOS3.0.sdk
export CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/
-I$SDKROOT/usr/include/ -I/usr/local/BerkeleyDB.4.7/include/"
export CFLAGS="$CPPFLAGS -pipe -no-cpp-precomp -isysroot $SDKROOT"
export CPP="/usr/bin/cpp $CPPFLAGS"
export LDFLAGS="-L$SDKROOT/usr/lib/ -L/usr/local/BerkeleyDB.4.7/lib/"
./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.2.1 \
LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes
make depend
make
我将libldap.a,liblber.a复制到我的项目中,并将所有标题复制为ldap.h ....
在项目设置中,我有:
Header Search Path : /path/to/openldap/headers
Library Search Path : filled with path from libldap.a and liblber.a
Other Linker Flags : -lldap -llber -ObjC
构建时一切都很好,但我通过以下代码得到上述错误:
LDAP **ld;
ldap_initialize(ld, "ldap://myldap.exemple.com");
有人知道我能做什么吗?
谢谢
答案 0 :(得分:0)
是的,我做到了,所以我会尽力帮助你。
这里是我用来设置所有闪存的命令行。
export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
export SDKROOT=$DEVROOT/SDKs/iPhoneOS2.2.sdk
export CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.0.1/include/ -I$SDKROOT/usr/include/ -I/usr/local/BerkeleyDB.4.7/include/"
export CFLAGS="$CPPFLAGS -pipe -no-cpp-precomp -isysroot $SDKROOT"
export CPP="/usr/bin/cpp $CPPFLAGS"
export LDFLAGS="-L$SDKROOT/usr/lib/ -L/usr/local/BerkeleyDB.4.7/lib/"
所以我需要构建BerkeleyDB,我的版本是4.7.25。
./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin
make
make install
最后我建立了这样的openldap:
./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes --enable-dynamic=yes --enable-modules=no --enable-static=yes --disable-shared --enable-ldap=yes && make depend && make
如果没有尝试这些命令,可能是你做了同样的事情。我知道我使用的是gcc 4.0.1而不是4.2.1的iPhone OS 3之一,但当我尝试构建一个静态库时,我正在构建我的项目时,它无法正常工作。 (很多错误)
在我建立openldap后,我创建了一个新项目
add in Header Search Path with the openldap include in Project Settings.
I copied both library into the ressource folder of my project : libldap.a and liblber.a
I filled Other Linker Flags with "-ObjC -lldap -llber"
希望能帮到你。
答案 1 :(得分:0)
我认为我在帖子中犯了一个错误,你应该尝试改变
这一行:
export LDFLAGS="-L$SDKROOT/usr/lib/ -L/usr/local/BerkeleyDB.4.7/include/"
这一个:
export LDFLAGS="-L$SDKROOT/usr/lib/ -L/usr/local/BerkeleyDB.4.7/lib/"
对不起我的错误
列昂