使用openldap库访问iPhone SDK 3 EXC_BAD_

使用openldap库访问iPhone SDK 3 EXC_BAD_,iphone,xcode,iphone-sdk-3.0,static-libraries,openldap,Iphone,Xcode,Iphone Sdk 3.0,Static Libraries,Openldap,希望有人能帮助我 我正在尝试在iPhoneOS3上为应用程序构建openldap,但当我尝试使用库中的某些内容时,我遇到以下错误: 程序接收到信号:“EXC_ 坏的访问” 我遵循这一点,用iphonegcc编译openldap。 因此,我使用以下内容构建了openldap: export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer export SDKROOT=$DEVROOT/SDKs/iPhoneOS3.0

希望有人能帮助我

我正在尝试在iPhoneOS3上为应用程序构建openldap,但当我尝试使用库中的某些内容时,我遇到以下错误:

程序接收到信号:“EXC_ 坏的访问”

我遵循这一点,用iphonegcc编译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");
有人知道我能做什么吗


谢谢

是的,我成功了,所以我会尽力帮助你

这里是我用来设置所有flasg的命令行

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
如果不尝试这些命令,您可能也会这样做。我知道我使用的是GCC4.0.1,而不是iPhoneOS3中的4.2.1,但是当我试图只构建一个静态库时,它在构建我的项目时不能正常工作,所以我被卡住了。很多错误

在构建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"

希望这能对你有所帮助。

我想我在我的帖子里犯了一个错误,你应该试着改变

这一行:

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/"
对不起,我错了

莱昂