日期:2014-05-16  浏览次数:20678 次

看编译结果写Makefile
/usr/local/lib/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ -o testp11 testp11.o testp11fun.o teststatic.o lib/htpkcs11-android.a -L./lib -L/usr/local/lib/android-ndk-r8/platforms/android-5/arch-arm/usr/lib -nostdlib -ldl -lm -lc /usr/local/lib/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o /usr/local/lib/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_android.o -Wl,-dynamic-linker,/system/bin/linker -lgcc -Wl,-rpath=./lib -Wl,-rpath=/usr/local/lib -Wl,-rpath=.

以上是编译一个源码的最后链接,请问Makefile要怎么写? 倒底要链接那些东西。

------解决方案--------------------
g++ -o后面跟的是目标文件,所以可以

EXTRA_LIB := lib/htpkcs11-android.a -L./lib -L/usr/local/lib/android-ndk-r8/platforms/android-5/arch-arm/usr/lib -nostdlib -ldl -lm -lc
EXTRA_OPT := -Wl,-dynamic-linker,/system/bin/linker -lgcc -Wl,-rpath=./lib -Wl,-rpath=/usr/local/lib -Wl,-rpath=.
CXX := /usr/local/lib/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++
testp11: testp11.o testp11fun.o teststatic.o
     $(CXX) -o $@ *.o ${EXTRA_LIB} ${EXTRA_OPT}
------解决方案--------------------
你可以网上找一个Makefile的模板, 然后在他的基础上修改, 主要修改的地方就是 源文件, 链接的库, 头文件搜索的目录, 没什么的。 另外你在搞清楚依赖关系就可以了。