windows下SDL使用ndk-build编译失败问题

解决JNI在Windows环境下因长路径导致编译失败问题 之前听一个朋友反馈LuaScriptoCore在Windows下编译会报错,今天特意跑到Windows环境下测试了一番,果然是存在问题。得到了下面的编译报错信息: Build command failed. Error while executing process C:\Users\vimfung\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.c... 阅读详情

错误代码:make: * [obj/local/armeabi/objs/SDL2/src/audio/SDL_wave.o] Error 70

解决方案:
在jni目录下的Application.mk中添加一行:NDK_TOOLCHAIN_VERSION=4.9(GCC版本)。
这里写图片描述

实战指南:使用CMake实现C++游戏项目的跨平台编译(Windows/Linux/Android) 跨平台编译是现代软件开发中的核心工程实践,旨在让同一套源代码能够在Windows、Linux、macOS、Android等不同操作系统和硬件架构上顺利构建和运行。其核心原理在于通过统一的构建描述文件,抽象出编译、链接和打包的通用逻辑,再通过平台特定的工具链(如MSVC、GCC、Android NDK)进行适配和生成。这项技术的价值在于极大地提升了代码复用率,降低了多平台维护成本,是游戏开发、嵌入式系统、科学计算等领域的必备技能。CMake作为当前C/C++项目构建的事实标准,通过编写CMakeLists.t 阅读详情

相关推荐

OpenBOR游戏引擎跨平台移植:从Windows到Android的完整实战指南

跨平台开发是现代游戏工程中的重要实践,其核心在于通过抽象层技术实现同一套代码逻辑在不同操作系统和硬件架构上的运行。其原理通常基于C/C++这类高性能语言编写核心引擎,并利用平台抽象库(如SDL2)处理底层系统交互,从而实现“一次编写,多处部署”。这种技术方案的价值在于极大提升了代码复用率,降低了多平台维护成本,尤其对于独立开发者和复古游戏项目意义重大。在应用场景上,它广泛应用于将PC端的自制或经典游戏引擎(例如专注于2D清版动作游戏的OpenBOR引擎)迁移到移动设备。本文将以OpenBOR引擎为例,详细解

CURSED! 434

ndk编译失败解决办法

在64位Ubuntu16.04下利用ndk编译文件时报错,如下图所示。 产生原因:64位系统下没有32位类库 解决办法:安装32位lib32z1 sudo apt-get update sudo apt-get install lib32z1 编译成功: 注:上述为root下ndk编译,为了简化文件拷贝等操作,可以在非root用户下进行操作(将ndk解压到非root目录,并添加环境变量) ...

eaglecoder的博客 855

VS2026编译Cocos2d-x 3.17项目:环境降级与兼容性实战指南

在C++项目开发中,编译环境配置与工具链兼容性是影响项目构建成功的关键因素。其原理在于不同版本的编译器、运行时库和构建工具之间存在二进制接口(ABI)差异,直接导致链接错误和运行时崩溃。掌握环境隔离与工具链锁定技术,能有效解决新旧开发工具混用带来的兼容性问题,对于维护遗留项目、统一团队开发环境具有重要工程价值。本文以Cocos2d-x游戏引擎迁移至Visual Studio 2026为具体场景,深入解析如何通过强制使用旧版MSVC工具链(v141/v142)、统一运行时库设置(/MT)及改造CMake配置等

congsikuai0611的博客 331

使用NDK编译碰到的问题

make: *** No rule to make target`/sources//android/cpufeatures/cpu-features.c',needed by `obj/local/armeabi/objs-debug/cpufeatures/cpu-features.o'. 删除输出文件夹“obj” 重新编译即可。 或者ndk-bulid clean 这个错误引发的运行是

懒人学程序 3672

Urho3D移动端开发实战:从环境搭建到性能优化的完整指南

游戏引擎作为游戏与应用开发的核心框架,其底层原理基于对图形渲染、物理模拟、资源管理等模块的高效整合。通过模块化设计与原生代码执行,引擎能够实现对硬件资源的精细控制,从而在性能与包体大小间取得平衡,这一特性在资源受限的移动平台上尤为关键。其技术价值在于为开发者提供了从底层硬件交互到高层游戏逻辑的完整工具链,使得开发高性能的3D应用、AR原型或图形密集型工具成为可能。本文聚焦于Urho3D这一轻量级C++引擎,深入探讨其在Android与iOS平台上的环境配置、核心模块适配及性能优化策略,为移动端开发提供一套可

weixin_34150830的博客 525

从MRF8P9040N数据手册到ADS仿真:手把手教你搞定LDMOS功放设计(附完整模型下载)

本文详细解析了MRF8P9040N LDMOS功率放大器的数据手册关键参数,并提供了在ADS中进行仿真的完整指南。从模型导入、直流工作点验证到负载牵引与阻抗匹配设计,逐步指导工程师完成高效功放设计。文章还包含调试技巧和常见问题解决方案,帮助优化射频功放性能。

weixin_27015733的博客 490

SDL - 创建控制台程序,编译时报错:无法解析的外部符号 _SDL_main,该符号在函数 _main_getcmdline 中被引用

原因:控制台工程创建的main函数 int main()与SDL库的main函数不一样; 解决方法: 方法一:在main函数前 #undef main; 方法二: 将int main()修改为 int main(int argc, char* argv[]);

u010096608的博客 2350

Unity 多线程编程笔记 _Task详解

士大夫

weixin_43405845的博客 4384

linux中SDL未定义的引用,gcc不会编译SDL C程序 已解决

ERROR:SDL中的值未定义的引用。

weixin_51527572的博客 820

告别VBA!用Python+PyWin32自动化你的SolidWorks建模流程(附完整代码)

本文详细介绍了如何利用Python和PyWin32实现SolidWorks建模流程的自动化,替代传统的VBA宏开发。通过环境配置、宏代码转换、高级开发模式及工程化实践等实战内容,帮助机械设计师构建高效、可维护的自动化工作流,显著提升设计效率。

weixin_30485379的博客 366

从三个角度理解知识图谱

2012年谷歌首次提出“知识图谱”这个词,由此知识图谱在工业界也出现得越来越多,对于知识图谱以及相关概念的理解确实也是比较绕。自己在研究大数据独角兽Palantir之后开始接触知识图谱,也算对其有了一定了解,这里从三个角度总结一下怎么去理解知识图谱。 几个基本概念:本体、实体、知识库、知识图谱 1、本体是概念的集合,是大家都公认的概念框架,一般不会改变如“人”、“事”、“物”、 “地”、“组...

JavaChaoCo的博客 6902

sdl屏蔽 android home,android - Android Studio SDL项目构建失败 - 堆栈内存溢出

我试图在Android Studio中构建SDL项目,但是发生了一些错误。我正在使用Windows 10环境。我使用了SDL官方页面( https://www.libsdl.org/download-2.0.php )中的代码,只是更改了“ YourSourceHere.c”文件。这些是错误消息:Error while executing process C:\NVPACK\android-sdk...

weixin_32466193的博客 197

Open3D点云数据处理(五):点云、mesh可视化(draw_geometries方法)

本文介绍了Open3D中的draw_geometries可视化方法,可以用于可视化点云和mesh。详细讲述了该方法的各个参数的作用,给出了代码示例。

孙悟空 3138

OpenBOR跨平台开发教程:从Windows到Android的完整部署指南

OpenBOR是一款终极2D横向卷轴游戏引擎,专为清版动作游戏、射击游戏等打造。本教程将带你完成从Windows开发环境搭建到Android应用部署的全过程,让你轻松实现游戏的跨平台发布。 ## 📋 准备工作:开发环境搭建 ### 1. 安装必要工具 - **Git**:用于获取源代码 - **CMake 3.22+**:项目构建系统,[CMakeLists.txt](https://lin

gitblog_00860的博客 624

点云数据处理:体素滤波算法

体素滤波是一种简单而有效的点云数据处理方法,可用于去除离群点和平滑点云表面。体素滤波是一种常用的点云数据处理算法,用于去除离群点并平滑点云表面。在本文中,我们将介绍CloudCompare和PCL(Point Cloud Library)中的体素滤波算法,并提供相应的源代码示例。PCL是一个专门用于点云处理的开源库,提供了一系列高效的点云处理算法和工具。然后,我们创建了一个。方法执行体素滤波,并将滤波后的点云保存为"filtered_cloud.ply"文件。方法来执行体素滤波,指定体素大小为0.01。

ZyqfCss的博客 388

PyTorch 最新安装教程(2021-07-27)

PyTorch 最新安装教程(2021-07-27)前言1. 安装 Anaconda2. 检查显卡,更新驱动3. 创建PyTorch环境4. 配置清华TUNA镜像源5. 安装 PyTorch6. 测试 前言 万事开头难! 这句话又一次被我验证。 记得前不久刚陷入Tensorflow2.0的安装困境,这一次又被PyTorch 搞哭辽。 孩子太难了o(╥﹏╥)o,不过还好最终成功安装,感谢全网资源,感谢大佬们的博客!被我一次一次试了出来。 1. 安装 Anaconda Anaconda 是一个用于科学计算的 P

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 23万+

Unity ML-Agents 工具包全面解析:从强化学习组件到训练模式实战指南

Unity Machine Learning Agents(ML-Agents)是 Unity 官方开源的工具包,它将 Unity 引擎转化为强化学习(Reinforcement Learning)、模仿学习(Imitation Learning)与神经进化(Neuroevolution)等机器学习方法的仿真训练平台。本文以中文版《ML-Agents 概述》文档为主体脉络,结合当前仓库 `com.

gitblog_01073的博客 1030

2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

针对YOLO26模型改进痛点,本专栏整理200+实战验证方法,覆盖卷积层、注意力机制等核心模块。 每种方法含原理、性能分析、改进路径及实操流程,代码可直接运行,快速提升模型效果,性价比超高。

魔改工程师的博客 1万+

如何用OpenBOR打造跨平台2D横版游戏:从零开始的完整指南

OpenBOR是一款完全免费、开源的2D横版卷轴游戏引擎,专门为清版动作游戏、射击游戏等类型设计。如果你梦想创建自己的街机风格游戏,这个引擎提供了从Windows到Android的完整跨平台支持,让开发者能够轻松将创意变为现实。 ## 为什么选择OpenBOR?解决独立游戏开发者的痛点 对于独立游戏开发者来说,最大的挑战往往不是创意本身,而是技术实现。传统的游戏开发需要投入大量时间学习复杂的引

gitblog_00600的博客 682

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

QuestDB 原始 Continuation 的 Carrier 监视器悬挂问题:成因、复现与调度器结构性规避

QuestDB 在其 Fiber 运行时中基于 JDK 的 `jdk.internal.vm.Continuation` 实现了用户态协程调度,但引入可复用原始 Continuation 时发现一个隐蔽缺陷:当载体线程(carrier)在持有内置监视器(intrinsic monitor,即 `synchronized` 锁)的状态下直接挂载 Continuation,一旦 Continuatio

gitblog_00186的博客 452

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

实战OpenBOR跨平台游戏引擎:从Windows开发到Android部署的完整指南

OpenBOR是一款功能强大的2D横版卷轴游戏引擎,专为清版动作游戏、射击游戏等类型打造。作为一款开源免费的跨平台游戏引擎,OpenBOR支持Windows、Linux和Android三大主流平台,让开发者能够轻松创建商业级游戏作品。本指南将深入解析OpenBOR的核心架构,提供从开发环境搭建到多平台部署的实战解决方案。 ## 🎯 跨平台开发挑战:如何让2D游戏在移动端保持原生体验? 在移动

gitblog_00095的博客 631

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Netcatty 工作区(多面板)标签复制实现指南:布局树深克隆、会话克隆与逐面板 cwd 继承

本文围绕 Netcatty 仓库中的实施计划文档 [docs/superpowers/plans/2026-07-29-copy-workspace-split-tab.md](https://link.gitcode.com/i/567c75c9a4d5890d8824fa8e2ca6d292) 展开,完整讲解"复制多面板工作区标签(Copy Multi-Pane Workspace Tab)"

gitblog_00062的博客 653

OpenBOR跨平台游戏引擎高级指南:从架构设计到企业级部署

OpenBOR是一款基于C语言开发的开源2D横向卷轴游戏引擎,专为清版动作游戏、射击游戏等类型提供完整的跨平台解决方案。作为Beats of Rage引擎的开源延续,OpenBOR通过模块化架构和现代构建系统支持Windows、Linux、Android等多平台部署,为游戏开发者提供了从原型开发到商业发布的完整技术栈。该引擎的核心价值在于其高度可扩展的脚本系统、优化的图形渲染管线以及企业级的跨平台

gitblog_02906的博客 348

OpenBOR跨平台2D游戏引擎技术深度解析与实践指南

OpenBOR是一款基于C语言开发的跨平台2D横向卷轴游戏引擎,专为清版动作游戏、射击游戏等像素风格游戏设计。自2004年诞生以来,该项目已发展成为最灵活、易用且功能强大的同类型引擎之一,支持Android、Linux和Windows三大主流平台。本技术文章将深入解析OpenBOR的架构设计、实现原理,并提供完整的跨平台部署实践指南。 ## 项目定位与核心价值 OpenBOR的核心技术价值在于

gitblog_00204的博客 292

swagger-codegen 生成的 Jersey2 客户端 API 文档解析:以 AnotherFakeApi 的 testSpecialTags 为例

本指南以 swagger-codegen 仓库中由 Petstore 测试规范自动生成的 Java Jersey2 客户端文档 [AnotherFakeApi.md](https://link.gitcode.com/i/ff0c75f38437db27e2b297bcc4606d17) 为核心,讲解生成式 API 文档的结构、`testSpecialTags` 方法的完整调用方式,并结合生成源码

gitblog_00577的博客 961

把 FCEUX 移植到HarmonyOS鸿蒙PC:一个 NES 模拟器的移植笔记

本文记录了将经典NES模拟器FCEUX移植到HarmonyOS的完整过程,重点介绍了技术架构和实现方案。作者通过分析FCEUX的代码结构,发现核心模块(6502 CPU、PPU渲染等)具有跨平台特性,只需重写驱动层即可实现移植。项目采用四层架构设计:ArkTS界面层通过NAPI桥接调用C++原生层,后者对接HarmonyOS驱动层并最终调用FCEUX核心模块。文章详细分享了视频输出方案的迭代过程(从失败的Canvas方案到成功的XComponent原生渲染方案),以及编译环境配置中的典型问题(头文件路径、库

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 3544
上一篇: Android访问网页的两种方式
下一篇: Java math.ceil 函数用法
Boiling_Cola
博客等级 码龄11年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值