soTest.rar 简单的C++导出android so库 demo NDK撩妹三部曲—站住同学,我这有个C++的so库,底层运算效率飞起,想不想要? 原文地址:https://blog.csdn.net/u012534831/article/details/106343264 前段时间,公司有个前端妹子找到我说:“Q哥,我想把我们项目的部分公共业务逻辑提取出来…”,话还没说完就被我打断了。“嗯,挺好的,抽个公共类吧”,我故作镇定的说道。“不是的,我想要…让你帮我用C++写一套,以后就能不区分平台的使用了嘛,你就帮帮我啪”,艹,打错了,是”吧“。咳咳,终于,妹子还是露出了本性。呵,女人! 刚开始学 C++ 的时,和其他语言一样,我们都是用着一样的if else 打天下,switch case 玩的贼6,猛然间仿佛有一种错觉,C++ 也没啥嘛,我这么快就掌握了。可是。随着项目压力和时间无情的鞭挞,在项目实战中被各种啪啪打脸后,才发现脚踏实地,地上全是坑的道理呀! C++ 是一种标准,它的源代码可跨平台,基于不同的平台进行编译。。我们在所有操作系统中都可以看到C++ 的影子,因此我们常常有一种需求是做一个 C++ 库拿来到处用,多省事。 好了,废话不多说,我这里使用 QT Creator 新建项目,当然使用宇宙第一 VS 也可以,由于之后的系列的内容,包括 Android NDK 的构建都是基于 QT 的,因此选用了 QT Creator。 首先,假设你已经配置好了所有的环境,当然也包括后面要用的 Android SDK 和 NDK 环境。 新建 C++ 项目,支持的平台选择 Android设备 模板,基于 Cmake构建(QTcreator 默认是 Qmake,但是为了跨平台,用 Cmake 更易于我们的前端小妹理解和后面的学习),最后因为我们要给前端小妹一个 so 库,因此选择需要选择 Android arm64-v8a 套件(不要选择 MSVC 哦),这个可以随便选择,根据自己 QTcreator默认识别的来。 有了上面的项目框架,接下来就看真功夫了。 首先新建三个文件 testglobal.h,sotest.h 和 sotest.cpp 。 右键“构建”,完成后即可在 build 目录找到生成的 libsoTest.so 则参考下面这篇文章的小结:“2.QTCreator 工具编译”解决。 QT 跨平台开发(二)之现有项目在linux和windows下利用NDK 和 Cmake 编译为android so库 一顿操作后,终于可以拿给前端小妹试用(装逼)了,这是小妹给我的调用截图: csdn地址:https://blog.csdn.net/u012534831 如有帮助,请多多支持哦。
从何说起?
算了,本着助人为乐的态度(主要还不是看长相),Q哥我决定帮助妹子实现这个伟大的愿望。欠揍,不,前奏
撩妹之路起始篇
最后,我们的项目结构如上图所示。撩妹之路实战篇
//testglobal.h #ifndef TEST_GLOBAL_H #define TEST_GLOBAL_H #include <QtCore/qglobal.h> #if defined(TEST_LIBRARY) # define TESTSHARED_EXPORT Q_DECL_EXPORT #else # define TESTSHARED_EXPORT Q_DECL_IMPORT #endif #endif // TEST_GLOBAL_H
//test.h #ifndef TEST_H #define TEST_H #include"testglobal.h" extern "C" { void TESTSHARED_EXPORT test(int a,int b); } #endif // TEST_H
//test.cpp #include"test.h" #include<iostream> using namespace std; void TESTSHARED_EXPORT test(int a,int b) { std::cout << "a+b:" << a+b << std::endl; }
//重点:cmake.txt cmake_minimum_required (VERSION 2.6) project(soTest) set(QT_DIR "D:/WorkSoftware/Qt5.12.0_for_android/5.12.0/android_arm64_v8a") set(ANDROID_ABI arm64-v8a) set(ANDROID_NDK D:/Java/android-ndk-r20) set(CMAKE_TOOLCHAIN_FILE ${ANDROID_NDK}/build/cmake/android.toolchain.cmake) set(CMAKE_MAKE_PROGRAME ${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe) set(ANDROID_TOOLCHAIN clang) set(ANDROID_PLATFORM android-21) set(ANDROID_STL c++_shared) set(ANDROID_SYSROOT ${ANDROID_NDK}/sysroot) set(ANDROID_ABI_NAME "android_arm64_v8a") include_directories(${ANDROID_SYSROOT}/usr/include/aarch64-linux-android) set(Qt5_DIR "${QT_DIR}/lib/cmake/Qt5") set(Qt5Core_DIR "${QT_DIR}/lib/cmake/Qt5Core") find_package(Qt5 COMPONENTS Core REQUIRED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(HEADERS testglobal.h test.h ) set(SOURCES test.cpp ) add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES}) target_link_libraries(soTest Qt5::Core)
若执行 Cmake 时出错,比如提示:
撩妹之路装逼篇
诶呦,我去,有人能告诉我妹子这是啥意思吗?
github地址:https://github.com/qht1003077897
源码地址:https://download.csdn.net/download/u012534831/12459034
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算