# xmake **Repository Path**: helloworldghh/xmake ## Basic Information - **Project Name**: xmake - **Description**: 跨平台的makefile编译方案。 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-31 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一、配置说明 1、对于安卓和ios系统,需要配置configs目录下对应平台文件中的编译器位置 2、对于苹果和linux这类系统,可以直接编译。 3、windows下使用mingw64。 二、特别说明 1、本编译系统不是通用系统,只支持固定目录结构,那就是,所有源码必须都在src目录下,以子目录形式存在,并且,只有一级目录。比如: myproject/src/config myproject/src/data myproject/src/import myproject/src/main ... 2、默认支持预编译 原理是,必须有import目录,在里多加了一个pch.cpp文件。还有一个head.h文件,就是用来生成gch文件的。所有需要include的文件都放它里边。 注意:pch.cpp文件,不是用来生成pch的,是用来监测是否需要重新生成pch的。 方法就是,pch.cpp包含了用来生成pch的head.h文件。 在生成.d依赖文件时,make depend会生成依赖链。 可是在编译pch.cpp时,用一个宏把它包含的head.h去掉了。 这样编译它时就会飞快,所以额外增加的这个pch检测器文件并不会造成额外的浪费。 如果不想用pch功能,可以在编译时定义一下空参数: make PCH_ENABLED= 或者在public/xos中,注销PCH_ENABLED:=1 #PCH_ENABLED:=1 2、编译用的makefile,放在src目录下。有8个文件。 DIRS : 保存源码目录 FILES: 用来展开所有源码文件,所有项目都一样,不用改。 EXPORTS : 导出编译系统需要的变量:xmake_root,就是告诉编译系统xmake在哪里。PROJECT_NAME定义项目名称,就是输出产物的名称。 makefile : 这里的include ${xmake_root}/xmake/xmake/helper/cpp/prj_make_exe,注意一下:prj_make_exe代表编译可执行文件,prj_make_a代表编译静态库,prj_make_so动态库。 剩下几个before和after,代表在编译系统载入xmake前和后,项目可以修改编译变量的机会。 dir代表源码目录,也就是编译,就是-c时 prj代表项目,也就是链接时。 3、每个源码目录中,有三个编译相关文件:makefile, depend, FILES。需要手动将源码文件,配置到FILES中。makefile和depend,所以源码目录中的都一样,不需要动。 二、使用说明 usage: 1、进入源码 cd xmake/src make CFG=android G=-g make CFG=linux G=-g make CFG=mingw G=-g ... android,linux是定义在configs中的文件。