有时候我们编译一个很大的程序的时候(特别是在移植别人的代码)总是会出现这样的一个报错:
warning: assignment makes pointer from integer without a cast
然后就跟着几个error 冲突的类型..... xxx函数。
如下:
Compile thumb : ipsecvpn <= /android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c: In function 'getanarg':
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c:171: warning: assignment makes pointer from integer without a cast
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c: At top level:
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c:237: error: conflicting types for 'getline'
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/jni/lib/optionsfrom.c:171: note: previous implicit declaration of 'getline' was here
/cygdrive/e/ANDROID/android-ndk-r4-crystax/build/core/build-binary.mk:169: recipe for target `
/android-ndk-r4-crystax/samples/AndroidIPsecvpn_12/obj/local/armeabi/objs/ipsecvpn/lib/optionsfrom.o' failed
这个原因是在你调用谋个函数之前没有去声明这个函数。
解决方法:在这个文件头加个所调用函数的声明 , 或在某个头文件中去加个声明即可!
如:
static char* getline(FILE*, char*, size_t);