1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android源码编译设置c++编译器 Android Stuido:使用CMake编译多个C/C++文件(1)

android源码编译设置c++编译器 Android Stuido:使用CMake编译多个C/C++文件(1)

时间:2020-06-14 00:09:57

相关推荐

android源码编译设置c++编译器 Android Stuido:使用CMake编译多个C/C++文件(1)

Abstract

上一篇文章基本介绍了Android Studio中链接C/C++代码的方法,本文进一步介绍如何处理具有多个.c/.cpp/.h文件的复杂project。有过linux编程经验的同学知道,我们编写的一堆.c/.cpp/.h文件,需要写一个Makefile文件指明编译链接的规则,同时还会指定一些编译选项、链接库等等。那么Android Studio中是如何实现的呢?

Step1 参照上文添加C/C++代码

添加完成后,文件目录结构如图:

Step2 CMakeLists.txt中添加代码路径

将所有需要的.c/.cpp文件路径添加到CMakeLists.txt文件中,.h文件则是通过指定头文件目录。具体代码如下:

指定代码文件路径:

add_library( # Sets the name of the library.

seadp_jni #c/cpp代码将要编译成为so库的名称,java代码加载库文件要用这个名称

SHARED #动态库

src/main/cpp/seadp/channel_management.cpp #将所有c/c++代码路径添加到下面

src/main/cpp/seadp/channel_packet.cpp

src/main/cpp/seadp/message.cpp

src/main/cpp/seadp/packetqueue.cpp

src/main/cpp/seadp/rawsocket_message.cpp

src/main/cpp/seadp/seanet_channel.cpp

src/main/cpp/seadp/seanet_socket.c

src/main/cpp/seadp/tunnelmessage.cpp

src/main/cpp/seadp/

src/main/jni/seadp_jni.c

)

指定头文件目录:

include_directories(

${CMAKE_SOURCE_DIR}/src/main/cpp/seadp/include #h文件目录

)

Step3 编译选项和链接规则

不同于Makefile的书写,CMake不需要显式指明链接规则。

链接库例如 -pthread等也不需要显式指明。

编译选项

例如:指定C/C++编译器类型?

#设置编译器类型

#C编译器 CMAKE_C_FLAGS_DEBUG

#C++编译器 CMAKE_CXX_FLAGS_DEBUG

SET(CMAKE_CXX_FLAGS_DEBUG "-g -std=c++11")

Ref

笔者水平有限,欢迎留言交流!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。