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

有没有专做游戏脚本的网站大连网站建设吗

有没有专做游戏脚本的网站,大连网站建设吗,东莞高端网站建设,免费网站推广文章xmake是一个基于Lua的轻量级现代化c/c的项目构建工具#xff0c;主要特点是#xff1a;语法简单易上手#xff0c;提供更加可读的项目维护#xff0c;实现跨平台行为一致的构建体验。本文主要详细讲解下#xff0c;如何通过配置子工程模块#xff0c;来组织构建一个大规模…xmake是一个基于Lua的轻量级现代化c/c的项目构建工具主要特点是语法简单易上手提供更加可读的项目维护实现跨平台行为一致的构建体验。本文主要详细讲解下如何通过配置子工程模块来组织构建一个大规模的工程项目。项目源码官方文档维护简单的项目结构对于一些轻量型的小工程通常只需要单个xmake.lua文件就能搞定大体结构如下projectdir- xmake.lua- src- test- *.c- demo- *.c源码下面层级简单通常只需要在项目根目录维护一个xmake.lua来定义所有target就能完成构建看上去并不是很复杂也很清晰。-- 在根域设置通用配置当前所有targets都会生效 add_defines(COMMON)target(test)set_kind(static)add_files(src/test/*.c)add_defines(TEST)target(demo)set_kind(static)add_files(src/demo/*.c)add_defines(DEMO)维护复杂的项目结构但是对于一些大型项目通常的组织结构层次很多也很深需要编译的target目标也可能有十几甚至上百个这个时候如果还是都在根xmake.lua文件中维护就有点吃不消了。这个时候我们就需要通过在每个子工程模块里面单独创建xmake.lua来维护他们然后使用xmake提供的includes接口将他们按层级关系包含进来最终变成一个树状结构projectdir- xmake.lua- src- test- xmake.lua- test1- xmake.lua- test2- xmake.lua- test3- xmake.lua- demo- xmake.lua- demo1- xmake.lua- demo2- xmake.lua...然后根xmake.lua会将所有子工程的xmake.lua通过层级includes全部引用进来那么所有定义在子工程的target配置也会完全引用进来我们在编译的时候永远不需要单独去切到某个子工程目录下操作只需要$ xmake build test1 $ xmake run test3 $ xmake install demo1就可以编译运行打包以及安装指定的子工程target所以除非特殊情况平常不推荐来回切换目录到子工程下单独编译非常的繁琐。根xmake.lua文件配置通常推荐的做法就是在根xmake.lua中仅仅配置一些对所有target都通用的设置以及includes对子工程的引用不放置对targets的定义例如-- define project set_project(tbox) set_xmakever(2.3.2) set_version(1.6.5, {build %Y%m%d%H%M})-- set common flags set_warnings(all, error) set_languages(c99) add_cxflags(-Wno-errordeprecated-declarations, -fno-strict-aliasing, -Wno-errorexpansion-to-defined) add_mxflags(-Wno-errordeprecated-declarations, -fno-strict-aliasing, -Wno-errorexpansion-to-defined)-- add build modes add_rules(mode.release, mode.debug)-- includes sub-projects includes(test, demo)xmake里面所有的设置都是按tree状继承的根xmake.lua中的root域设置会对所有includes的子xmake.lua里面的targets生效 但反过来不会子xmake.lua里面的root域设置仅对它下面的子xmake.lua生效不会影响到父xmake.lua中定义的targets。子xmake.lua文件配置所以我们可以在每个子工程目录中单独配置xmake.lua里面的所有配置不会干扰父xmake.lua只对它下面的更细粒度的子工程生效就这样一层层按tree状生效下去。由于已经在根xmake.lua配置了大部分通用配置那么我们可以在test子工程下专心配置只对test有用的设置例如对于projectdir/test/xmake.luaadd_defines(TEST)target(test1)set_kind(static)add_files(test1/*.c)add_defines(TEST1)target(test2)set_kind(static)add_files(test2/*.c)add_defines(TEST2)我们可以在这里定义test的所有target当然也可以继续分层在每个test1, test2目录下单独维护xmake.lua这个看自己项目的规模来决定。比如add_defines(TEST) includes(test1, test2)test1/xmake.luatarget(test1)set_kind(static)add_files(test1/*.c)add_defines(TEST1) test2/xmake.luatarget(test2)set_kind(static)add_files(test2/*.c)add_defines(TEST2)而这里面的add_defines(TEST)在root域会对test1/test2两个target都生效但是对于demo目录的target不生效因为它们是平级的没有tree状继承关系。跨xmake.lua间目标依赖虽然projectdir/test/xmake.lua和projectdir/demo/xmake.lua两个子工程目录是平级关系配置无法相互干扰但是targets是可以跨xmake.lua访问的来实现目标间的依赖。比如demo需要依赖test静态库进行链接使用那么demo下xmake.lua可以这么写target(demo1)set_kind(binary)add_files(demo1/*.c)add_deps(test1)只要通过add_deps(test1)关联上对应其他子工程目标作为依赖即可test1静态库会优先编译并且demo可执行程序会自动link上它生成的libtest1.a库。文件路径的层级关系我们需要记住所有跟路径相关的配置接口比如add_files, add_includedirs等都是相对于当前子工程xmake.lua所在的目录的所以只要添加的文件不跨模块那么设置起来只需要考虑当前的相对路径就行了。projectdir- test- xmake.lua- test1/*.c- test2/*.c 比如这里添加的源文件路径都是相对于test子工程目录的我们不需要去设置绝对路径这样会简化很多。target(test1)add_files(test1/*.c) target(test2)add_files(test2/*.c) 当然如果我们有特殊需求非要设置工程其他子模块下的文件路径呢两种办法通过../../的方式一层层绕出去另外一种就是使用$(projectdir)内置变量它表示项目全局根目录。比如在demo子工程下target(demo1)set_kind(binary)add_files(demo1/*.c)add_files(../../test/test1/*.c)或者target(demo1)set_kind(binary)add_files(demo1/*.c)add_files($(projectdir)/test/test1/*.c)includes接口使用进阶错误的使用方式includes这个接口属于全局接口不隶属于任何target所以请不要在target内部调用下面是错误的用法target(test)set_kind(static)includes(test1, test2)add_files(test/*.c) 正确的用法是includes(test1, test2) target(test)set_kind(static)add_files(test/*.c) 或者target(test)set_kind(static)add_files(test/*.c) target_end()-- 在下面调用需要先显式退出target作用域 includes(test1, test2)引用目录或文件另外includes既可以引用目录也可以直接引用文件如果test1目录下存在xmake.lua那么可以直接includes(test1)来引用目录。如果test1目录下是其他xxxx.lua命令的项目文件可以通过指定文件来引用includes(test1/xxxx.lua)效果一样的。模式匹配进行批量导入includes还支持通过模式匹配的方式来批量导入多个子工程比如includes(test/*/xmake.lua)可以导入test目录下所有test1, test2等子工程目录下的配置如果是**还支持递归多级匹配includes(test/**/xmake.lua)通过模式匹配我们只需要在test/xmake.lua一处地方进行includes以后用户在新增其他子工程xmake.lua就会自动导入进来非常方便。注意事项另外在使用includes的过程中需要注意的一点是它不是c语言的#include因此在当前配置中includes子配置当前配置是不会有任何影响的比如includes(xxx) target(test)-- ...上面includes了一些子工程但是这些子工程的配置是不会干扰当前test目标程序的。https://tboox.org/cn/2020/04/11/quickstart-11-subprojects/
http://www.lebaoying.cn/news/12570.html

相关文章:

  • 北京室内设计师电话广东seo网站设计多少钱
  • python 做 网站广告制作公司口号
  • 济宁网站建设第一品牌社区推广怎么做
  • 建设一个大型电影网站鲜花网站建设的主要工作流程
  • 做购物商城网站建设跨境电商一件代发货源平台
  • 广西建设局网站首页手机网站快速排名
  • 网站设计和经营微信网站界面设计
  • wordpress搬站代理注册公司网站模版
  • 的建站网站个人网站备案名字
  • 网站建设+备案什么意思seo怎么做网站排名
  • 做设计专业的能做网站吗平面设计公司一般做什么
  • 帮别人做网站被抓html网页基础代码
  • 厦门做返利网站的公司郑州网站建设 .cc
  • 龙华营销型网站费用佛山网站建站建设
  • 网站项目ppt怎么做舟山建设信息港网站
  • 机构类网站有哪些it培训课程
  • 保定网络公司网站赣县企业网站建设
  • 网站 风格网站启用cdn加速
  • 摄影作品网站有哪些关键词优化报价怎么样
  • 山东网站建设负面消息处理网站建设 中企动力板材生态板
  • 专业网站建设设计装饰网站开发职业生涯规划书
  • 一个公司可以做两个网站推广吗第一次做网站做后感
  • 如何自己做淘宝网站北大荒建设集团网站
  • 大连白云小学网站建设国外 网站 源码
  • 网站的系统帮助开发工具宏怎么使用
  • 如何优化网站目录结构wordpress 登录小工具
  • 沈阳公司建站电商平台入驻条件
  • 小型企业网站模板h5网站怎么做
  • 论文旅游网站建设毕业季网页制作素材
  • 东莞市手机网站建设多少钱Wordpress无法显示