Libpng upgrade for cocos2d-x 1.0.1 [SOLVED]

Hello there.

i use cocos2d-x 1.0.1 in my office

i just upload a game to google play store and rejected my game.

it was rejected by security warning of libpng.

so i tried that upgrade libpng version, from 1.2.46 to 1.2.56.

but i run the NDK build after that the build error like this

Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 8 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 8920 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 48688 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 92280 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 123280 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 213064 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 241256 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 333432 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 373000 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 389320 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 406328 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 445392 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 545712 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 569056 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 586336 is not an ELF object
Documents/android-ndk-r7-crystax-5.beta2/toolchains/arm-linux-androideabi-4.6.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.3/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/png.a: member at 605544 is not an ELF object
..//libs/cocos2dx/platform/CCImage.cpp:56: error: undefined reference to 'png_get_io_ptr'
..//libs/cocos2dx/platform/CCImage.cpp:65: error: undefined reference to 'png_error'
..//libs/cocos2dx/platform/CCImage.cpp:222: error: undefined reference to 'png_sig_cmp'
..//libs/cocos2dx/platform/CCImage.cpp:304: error: undefined reference to 'png_destroy_read_struct'
..//libs/cocos2dx/platform/CCImage.cpp:225: error: undefined reference to 'png_create_read_struct'
..//libs/cocos2dx/platform/CCImage.cpp:229: error: undefined reference to 'png_create_info_struct'
..//libs/cocos2dx/platform/CCImage.cpp:239: error: undefined reference to 'png_set_read_fn'
..//libs/cocos2dx/platform/CCImage.cpp:247: error: undefined reference to 'png_read_png'
..//libs/cocos2dx/platform/CCImage.cpp:253: error: undefined reference to 'png_get_IHDR'
..//libs/cocos2dx/platform/CCImage.cpp:268: error: undefined reference to 'png_get_rows'
..//libs/cocos2dx/platform/CCImage.cpp:385: error: undefined reference to 'png_create_write_struct'
..//libs/cocos2dx/platform/CCImage.cpp:393: error: undefined reference to 'png_create_info_struct'
..//libs/cocos2dx/platform/CCImage.cpp:408: error: undefined reference to 'png_init_io'
..//libs/cocos2dx/platform/CCImage.cpp:418: error: undefined reference to 'png_set_IHDR'
..//libs/cocos2dx/platform/CCImage.cpp:421: error: undefined reference to 'png_malloc'
..//libs/cocos2dx/platform/CCImage.cpp:422: error: undefined reference to 'png_set_PLTE'
..//libs/cocos2dx/platform/CCImage.cpp:424: error: undefined reference to 'png_write_info'
..//libs/cocos2dx/platform/CCImage.cpp:426: error: undefined reference to 'png_set_packing'
..//libs/cocos2dx/platform/CCImage.cpp:489: error: undefined reference to 'png_write_image'
..//libs/cocos2dx/platform/CCImage.cpp:496: error: undefined reference to 'png_write_end'
..//libs/cocos2dx/platform/CCImage.cpp:498: error: undefined reference to 'png_free'
..//libs/cocos2dx/platform/CCImage.cpp:501: error: undefined reference to 'png_destroy_write_struct'
..//libs/cocos2dx/platform/CCImage.cpp:413: error: undefined reference to 'png_set_IHDR'
..//libs/cocos2dx/platform/CCImage.cpp:397: error: undefined reference to 'png_destroy_write_struct'
..//libs/cocos2dx/platform/CCImage.cpp:404: error: undefined reference to 'png_destroy_write_struct'
..//libs/cocos2dx/platform/CCImage.cpp:475: error: undefined reference to 'png_write_image'
..//libs/cocos2dx/platform/CCImage.cpp:432: error: undefined reference to 'png_destroy_write_struct'

i don’t know why didn’t finish NDK build…

please help me. :cry:

Cocos2d-x 1.0.1?? I’m not even sure how the dependencies are updated for such an old version.

You can try build it yourself that way it should be compatible with the ndk you have.

2 Likes

Thanks a lot !!
i fixed with this tip.!!

I think cocos2d-x 1.0 is one of the best minimal frameworks .
i wander if it will work on all ios and androids still

good question!

It does. I’m still using cocos2d-1.0.1-x-0.9.1 for my three years old games. I made updates recently but it went live before Google started to reject old libpng versions.

My latest game is using cocos2dx 3.9, though.