xmake光速入门

xmake光速入门

  1. 单目录项目可直接在目录下执行xmake,自动分析生成对应的xmake.lua文件编译执行。
  2. 工程示例:
    -3rd
    	-json
    		-include
    			json.h
    		-lib
    			libjson.a
    -include
    	-cmd
    		cmd.h
    -src
    	-common
    		common.h
    		common.cpp
    	-cmd
    		cmd.cpp
        -table
        	table.h
        	table.cc
        	xmake.lua
        main.cpp
    -xmake.lua
    
    -- xmake.lua
    x = "3rd/" -- 全局变量 可以直接在所有目录下的xmake.lua文件中使用
    local x2 = "3rd/" -- 局部变量 只能在该xmake.lua使用
    target("json")
    	local x3 = "3rd/" -- 局部变量 只能在该target域里使用
    	set_kind("phony") -- 仅将第三方库封装,不生成任何文件,别的target只需要依赖该对象,无需再手动去link等等
    	-- x3 .. "/json" 字符串变量连接 也可以不使用变量,少写一行也是一种美~
    	add_hearderdirs("3rd/json/include", {public = true}) -- 导出头文件查找路径
    	add_links("json", {public = true}) -- 添加库链接
    	add_linkdirs("3rd/json/lib", {public = true}) -- 导出链接路径
    target("test")
    	set_kind("binary") -- target类型 binary可执行文件,share动态库,static静态库
    	add_files("src/*.cpp", "src/cmd/*.cpp", "src/commond/*.cpp") -- 添加源文件,模式匹配支持各种后缀,可以填多个参数
    	add_includedirs("include") -- 添加头文件查找目录 与上述源文件在一起的头文件不需要手动添加,可以自动识别
    	 set_pcxxheader("pch.h") -- 设置预编译头文件
    	add_syslinks("pthread") -- 添加系统库链接
    	-- table是别的目录下的target,json是第三方静态库,但我们提供了target("json"),都可以直接依赖
    	add_deps("table", "json") -- 添加依赖,通过这样的方式继承别的target的属性,将每个子目录封装起来更优雅的描述
    includes("src/table") -- table这个target在别的目录下,因为该目录下有xmake.lua所以可以直接包含进来
    
    -- table/xmake.lua
    target("table")
    	-- 可以直接在这里使用x变量 因为他是全局的,但我们不需要,因为直接依赖json就可以了
    	set_kind("object") -- 仅生成目标文件被其他target包含
    	add_files("*.cc")
    	add_includedirs("./", {public = true}) -- 设置public将该路径暴露出去,依赖的target就不需要再去添加该路径
    
     // main.cpp
     #include "json.h" // 头文件在3rd/json/include下,在json这个target中我们导出了include目录
     #include "cmd/cmd.h" // 头文件与源文件不在一起,但我们添加了对应的头文件路径
     #include "common.h"
    
  3. 生成cpptools插件使用的compile_commands.json到.vscode目录 xmake project -k compile_commands --lsp=cpptools .vscode
  4. 当我成功编译后对比使用makefile编译出的可执行文件大小变大了10%,不知是哪个参数没搞对。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值