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

本文在上一篇介绍Android Studio链接C/C++代码方法的基础上,进一步介绍处理多.c/.cpp/.h文件复杂项目的方法。包括参照上文添加C/C++代码,在CMakeLists.txt中添加代码路径,设置编译选项和链接规则,如指定C/C++编译器类型等。

Abstract

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

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

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

366dfed82beb

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值