当前位置: 首页 > wzjs >正文

htm网站底部版权wordpress

htm网站,底部版权wordpress,wordpress 资讯插件,自己电脑做网站 路由器windowscmakevscodeNDK远程调试安卓端C项目 windowscmakevscodeNDK远程调试安卓端C项目 windowscmakevscodeNDK远程调试安卓端C项目 使用C开发安卓端算法库时,需要使用NDK进行交叉编译。使用NDK编译代码时,需要编写.mk脚本进行代码的编译和链接&#xf…

windows+cmake+vscode+NDK远程调试安卓端C++项目

  • windows+cmake+vscode+NDK远程调试安卓端C++项目

windows+cmake+vscode+NDK远程调试安卓端C++项目

使用C++开发安卓端算法库时,需要使用NDK进行交叉编译。使用NDK编译代码时,需要编写.mk脚本进行代码的编译和链接,比较繁琐,因此可以借助cmake和NDK工具链组织项目,只需要在根目录的CMakeLists.txt中调用NDK工具链就可以进行交叉编译,无需学习NDK编译脚本的语法,并且仍然可以发挥cmake 的特长。

在这片文章中,我们不介绍如何使用cmake+NDK进行交叉编译,认为读者已经有这方面的基础。这部分相关的内容可以阅读这个系列中的其他博文。
本文主要介绍如何使用NDK的调试工具,在windows上调试C++项目,而C++项目实际是在安卓手机上运行的。


  1. 假设我们已经有了一个完整的C++ + cmake +NDK编译的项目。
  2. 编写一个build.bat脚本,用于自动进行cmake构建
@echo off
if exist "./build" (rmdir /s /q "./build"echo Folder deleted successfully.
) else (echo Folder not found.
)
set current_path=%cd%@REM call cmake --no-warn-unused-cli -DCONFIG=android_qcom_arm64 -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -S . -B ./build -DCMAKE_MAKE_PROGRAM=%current_path%\ninja\ninja -G "Ninja"
call cmake --no-warn-unused-cli -DCONFIG=android_qcom_arm64 -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -S . -B ./build -DCMAKE_MAKE_PROGRAM="D:\msys64\mingw64\bin\mingw32-make.exe" -G "MinGW Makefiles"
call cmake --build ./build --config Debug --target all --

脚本中的路径自行替换

  1. 编写run.bat脚本将编译后的库文件和可执行文件push到手机端,同时将gdb工具push到手机端。其中gdb工具位于NDK安装目录下“android-ndk-r23/prebuilt/android-arm64/gdbserver/gdbserver”。
adb root
adb remountadb shell rm -rf /data/tmp/
adb shell mkdir /data/tmp/
adb push ./build/bin/testbed /data/tmp/
adb push ./build/sharedLib /data/tmp/
adb push "D:/android-ndk-r23/prebuilt/android-arm64/gdbserver/gdbserver" /data/tmp/adb shell ls /data/tmp/
adb shell chmod -v 777 /data/tmp/testbed
adb shell chmod -v 777 /data/tmp/gdbserveradb forward tcp:9090 tcp:9090set env=export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/tmp/sharedLib
@REM adb shell "%env% && /data/tmp/testbed"
adb shell "%env% && /data/tmp/gdbserver :9090 /data/tmp/testbed"
  1. -在工程中创建.vscode文件夹,在该文件夹下创建launch.json和task.json这两个文件t。task.json文件内容如下,其中上述两个bat脚本都放在工程的根目录下
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "cmd","args": ["/c","${workspaceFolder}/build.bat"],"group": {"kind": "build","isDefault": true}},{"label": "run","dependsOn": ["build"], // 指定要依赖的任务列表"type": "shell","command": "start cmd","args": ["/c","${workspaceFolder}/run.bat"],"group": {"kind": "build","isDefault": true}},]
}

launch.json文件内容如下:其中在"program": “${workspaceFolder}/build/bin/testbed”,指定本地可执行文件的路径;在"miDebuggerPath": “D:/android-ndk-r23/prebuilt/windows-x86_64/bin/gdb.exe”,指定本地NDK的gdb路径

{"version": "0.2.0","configurations": [{"name": "Remote Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/bin/testbed","args": [],"stopAtEntry": true,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"serverLaunchTimeout": 1000,"filterStderr": true,"filterStdout": true,"serverStarted": "GDB server started on port","miDebuggerPath": "D:/android-ndk-r23/prebuilt/windows-x86_64/bin/gdb.exe","miDebuggerServerAddress": ":9090","preLaunchTask": "run",}]
}

启动vscode中的运行->启动调试开始调试程序,此时会弹出一个外部的windows终端。这样一来就可以在windows上打断点,查看变量了。但是代码实际上是在手机上运行,只是通过gdbserver将调试信息从手机端发送到vscode上。


文章转载自:

http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://00000000.fyLqz.cn
http://www.dtcms.com/wzjs/617242.html

相关文章:

  • 网站校园推广案例网页设计模板html代码音乐
  • 网站建设意义必要性网站开发类比赛
  • 建设人力资源服务网站工作方案洛阳制作网站的公司吗
  • 学习网站开发多少钱新型门窗网站模板
  • joomla 做的网站网页编辑器哪个好
  • wordpress适合做什么网站设计类专业要艺考吗
  • 怎么把自己做的网站发布出去免费的网络推广渠道
  • 论坛网站有哪些河北省建设工程
  • 15个平面设计图素材网站注册科技有限公司可以做网站吗
  • 网站内部链接怎麽做wordpress主题 搜索
  • wordpress 段子模板抖音seo怎么做
  • 宁夏小蚁人网站建设wordpress 类目插件
  • 大型电子商务网站建设专门做化妆品的网站
  • 锡山建设局网站如何建设英文网站
  • 岳麓区营销型网站建设定制企业网站建设制作公司哪家好
  • 企业商城网站多少钱深圳建立网站公司
  • 宁夏政务网站建设标准wordpress官网密码
  • 网站建设的收费标准wordpress 家装装修模板下载
  • 青岛经纬建设工程有限公司网站ckplayer wordpress
  • 网站建设报价单模板下载企业oa系统哪个好
  • 西部数码的vps云主机如何访问网站保定企业网站建站模板
  • 网站关键词排名查询工具天元建设集团有限公司三层九中心
  • 河北中冶润丰建设股份有限公司网站台州做网站最好的
  • 网站建设中最有效网站推广方式管理咨询公司主要做什么
  • 织梦网站栏目设计网站运营开发托管
  • 网站开发具备知识有哪些人物设计网站
  • 一般网站字体大小室内装修效果大图
  • 做网站编辑器wordpress写文章打不开
  • 朔城网站制作郑州好的网站建设公司
  • 一般做网站带宽选择多大的杭州装饰网站建设方案