编译工具:
gcc工作流程:预编译--------->编译--------->汇编--------->链接,
文件处理成可执行文件,步骤非常复杂;
gcc ---> makefile (执行编译脚本) 只能在linux系统中执行,cMake则是跨平台:windows, mac,linux
发展历程:gcc---->makefile---->cMake;
c项目中,在编译的时候会生成:
arm64-v7a 运行在手机
arm64-v8a 运行在手机
x86 运行在电脑模拟器
x86_64 运行在电脑模拟器
芯片架构
芯片是v7a,是运行不了v8a编译的代码
在build.gradle文件中配置运行平台:
defaultConfig {
applicationId "com.imitate.shortvideo.mycdemo"
minSdk 21
targetSdk 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ''
}
}
// 运行的平台,只有armeabi-v7a;一般是v7a平台,v7a手机平台
// 更换平台配置后,需要执行清理缓存:build-> refreshlinked C++ Projects
ndk{
abiFilters 'armeabi-v7a'
}
}
Android studio中c项目编译时,寻找:build_command.txt文件,此中有参数,有cmake地址
cMake完成编译工作之后,生成文件:libnative-lib.so



