DNK编译配置代码要求_

    短短的五行代码,我们就完成了NDK编译的配,工作。在讲解代码。45的过程中,我们介绍了两个新的内容:宏定义和棋块。模块的概念很容易理解,它就是将所有编译的文件组合到一起的集合。按照我们之前的设置。在NDK编译完成后。枕能得到一个名字为libhello-jni.so的库文件。后面还要继续为你讲解NDK宏定义的内容。根据已经编写的代码,你应该已经熟悉T三个宏定义变胜$(call my dir), $(CLEAR_VARS)和$S(BUILDes SNARED LIBRARY)。除了以上的宏定义变量之外,开发者还可以在配盆文件中设!以下宏定义变盆。这些变且并不是必需的,开发者可以根掘需要进行配!。
    .LOCAL CPP EXTENSION:这是一个可选变量。用来指定C+r代码文件的扩展名。默认是cPP-但是你可以改变它,比如:LOCAL CPPwe EXTENSION =.cxx·LOCAL一 CFLAGS:可选的编译器选项。在编泽C七十斗代码文件的时候使用。这变暇将会指定一个附加的包含路径(相对于NDK的顶层目录)、宏定义或者编译选项。
    ·LOCAL-STATIC-LIBRARIES:在编译代码文件时。编译器会使用链接到这个模块的静态库列表(使用BUILD-STATIC-LIBRARY生成),这仅仅对共享库模块才有意义。
    ·LOCAL-SHARED-LIBRARIES:当前模块在运行时盆要依粗的共享库棋块列表,在链接时需要。在生成文件时嵌入相应的信息。共享库模块通常由操作系统提供。
    .LOCALes LDLIBS:编译模块时。需要使用的附加链接器选顶。开发者可以使用一l前级传递指定库的名字。这对于Android操作系统是有用的。例如,LOCAL- LDLIBS,-flog将告诉链接器生成的模块要在加载时链接到日志调试库。
    ·LOCALED--sYMBOLs:允许使用未定义的关健字。在欺认情况。
    试图编译一个共享库时,任何未定义的引用将导致一个‘未定义的符号。钻误。这对于在潭代码文件中捕捉错误会有很大的帝助。然而。如果因为某些原因,需要不启动这项检查。那么把这个变E设为ture.那样的话,相应的共享库如果加载失欣将不会被你发现。
    ·LOCAL-ARM-MODE:内恢CPU所使用的指令形式。欧认情况下。编译器会按照16位的arm芯片生成thumb的形式,但是你可以通过设置这个变最,将其改为32位指令的形式。

        DNK编译配置代码要求

       

相关新闻