246 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			246 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# 安装
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## xmake
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								构建工具
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[github](https://github.com/xmake-io/xmake/releases)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## clang
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								c++ 编译器
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[github](https://github.com/llvm/llvm-project/releases)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## VS CODE
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[https://zhuanlan.zhihu.com/p/398790625](https://zhuanlan.zhihu.com/p/398790625)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[万字长文]Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + XMake)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 配置
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								强行修改 xmake.conf
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								通过 xmake f 设置会失败
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								--全局配置  
							 | 
						|||
| 
								 | 
							
								xmake g --ndk=~/files/android-ndk-r10e/  
							 | 
						|||
| 
								 | 
							
								--清除配置  
							 | 
						|||
| 
								 | 
							
								xmake f -c  
							 | 
						|||
| 
								 | 
							
								--导出配置  
							 | 
						|||
| 
								 | 
							
								xmake f --export=config.txt  
							 | 
						|||
| 
								 | 
							
								xmake f -m debug --xxx=y --export=config.txt  
							 | 
						|||
| 
								 | 
							
								--环境变量  
							 | 
						|||
| 
								 | 
							
								xmake show -l envs
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								# 项目
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 更新
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								# 更新到指定版本
							 | 
						|||
| 
								 | 
							
								xmake update 2.2.4
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#更新到指定分支
							 | 
						|||
| 
								 | 
							
								xmake update master 
							 | 
						|||
| 
								 | 
							
								xmake update dev
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#更新到指定地址
							 | 
						|||
| 
								 | 
							
								xmake update github:xmake-io/xmake#master 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#更新脚本
							 | 
						|||
| 
								 | 
							
								xmake update -s dev
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#卸载
							 | 
						|||
| 
								 | 
							
								xmake update --uninstall 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 创建
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								#创建
							 | 
						|||
| 
								 | 
							
								xmake create zmake
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#查询创建模板
							 | 
						|||
| 
								 | 
							
								xmake create --help
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#创建指定模板 语言 + 类型
							 | 
						|||
| 
								 | 
							
								xmake create -l c -t static zmake
							 | 
						|||
| 
								 | 
							
								xmake create -t qt.quickapp zmake
							 | 
						|||
| 
								 | 
							
								xmake create -l cuda test
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#指定编译版本
							 | 
						|||
| 
								 | 
							
								xmake f -m debug
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#清除缓存
							 | 
						|||
| 
								 | 
							
								xmake f -c
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 编译
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								# 使用帮助
							 | 
						|||
| 
								 | 
							
								xmake f --help
							 | 
						|||
| 
								 | 
							
								# 设置编译架构
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=xxx -a arm64-v8a
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 交叉编译
							 | 
						|||
| 
								 | 
							
								xmake f -p cross --sdk=/home/toolchains_sdkdir
							 | 
						|||
| 
								 | 
							
								xmake f -p linux --sdk=/home/toolchains_sdkdir --bin=/usr/opt/bin 
							 | 
						|||
| 
								 | 
							
								xmake f -p linux --sdk=/user/toolsdk --cc=armv7-linux-clang --cxx=armv7-linux-clang++
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 设置目录
							 | 
						|||
| 
								 | 
							
								xmake f -p linux --sdk=/usr/toolsdk --includedirs=/usr/toolsdk/xxx/include --linkdirs=/usr/toolsdk/xxx/lib --links=pthread
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 生成
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								# 生成 vs 项目
							 | 
						|||
| 
								 | 
							
								xmake project -k vsxmake
							 | 
						|||
| 
								 | 
							
								# 指定版本 与 模式
							 | 
						|||
| 
								 | 
							
								xmake project -k vsxmake2022 -m "debug;release"
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 运行
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								#编译
							 | 
						|||
| 
								 | 
							
								xmake
							 | 
						|||
| 
								 | 
							
								#运行程序
							 | 
						|||
| 
								 | 
							
								xmake run
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#触发事件
							 | 
						|||
| 
								 | 
							
								on_run
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 调试
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								#输出调试信息
							 | 
						|||
| 
								 | 
							
								#v 输出 编译指令
							 | 
						|||
| 
								 | 
							
								xmake -vD
							 | 
						|||
| 
								 | 
							
								xmake -vD verbose Diagnosis 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 语法检测
							 | 
						|||
| 
								 | 
							
								xmake check
							 | 
						|||
| 
								 | 
							
								xmake check api
							 | 
						|||
| 
								 | 
							
								xmake check api.target
							 | 
						|||
| 
								 | 
							
								xmake check -v
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 自动修复
							 | 
						|||
| 
								 | 
							
								xmake check clang.tidy --fix
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 调试Lua源码
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```lua
							 | 
						|||
| 
								 | 
							
								local _luasocket = _PROGRAM_DIR .. "/winenv/bin/core.dll"
							 | 
						|||
| 
								 | 
							
								package.cpath = package.cpath .. ";" .. _luasocket
							 | 
						|||
| 
								 | 
							
								require("../winenv/bin/LuaPanda").start("127.0.0.1",8818)
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 下载
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								关闭 curl ssl 证书验证
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								 xmake global --help
							 | 
						|||
| 
								 | 
							
								 xmake global --insecure-ssl=INSECURE-SSL
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# Lua 接口
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								xmake lua /tmp/test.lua 
							 | 
						|||
| 
								 | 
							
								xmake lua lib.detect.find_tool gcc 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								xmake lua
							 | 
						|||
| 
								 | 
							
								进入lua 交互
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 第三方库
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 本地依赖
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								# -p android 指定编译平台
							 | 
						|||
| 
								 | 
							
								# 传递库名 与 编译路径
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=~/downloads/android-ndk-r19c
							 | 
						|||
| 
								 | 
							
								xmake f --qt=/home/xxx/qtsdk
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 全局依赖
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								# 传递库名 与 编译路径
							 | 
						|||
| 
								 | 
							
								xmake g --ndk=~/xxx/android-ndk-r19c
							 | 
						|||
| 
								 | 
							
								xmake g --qt=/home/xxx/qtsdk
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 示例
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```shell
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=xxx --ndk_sdkver=16
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=xxx -a arm64-v8a
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=xxxx --ndk_cxxstl=gnustl_shared
							 | 
						|||
| 
								 | 
							
								xmake f -p android --ndk=xxxx --ndk_cxxstl=gnustl_shared --ndk_sdkver=16
							 | 
						|||
| 
								 | 
							
								xmake f --help
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# QA
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## xmake f
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								强行修改 `.xmake\windows\xmake.conf`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`xmake f -a=x64 -p=windows`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								xmake f -cvD
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## add_requires
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								pulling repository(build-artifacts): https://github.com/xmake-mirror/build-artifacts.git to C:\Users\Administrator\AppData\Local\.xmake\repositories\build-artifacts ..  
							 | 
						|||
| 
								 | 
							
								git -c core.fsmonitor=false pull origin main  
							 | 
						|||
| 
								 | 
							
								fatal: not a git repository (or any of the parent directories): .git  
							 | 
						|||
| 
								 | 
							
								error: execv(git -c core.fsmonitor=false pull origin main) failed(128)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								手动 git clone [https://github.com/xmake-mirror/build-artifacts.git](https://github.com/xmake-mirror/build-artifacts.git)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## curl ssl problem
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								由cartalyst / stripe使用的Guzzle将执行以下操作来查找适当的证书归档,以检查服务器证书是否符合以下条件:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								1. 检查你的php.ini文件是否设置了`openssl.cafile` 。
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								2. 检查`curl.cainfo`是否在您的php.ini文件中设置。
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								3. 检查是否存在`/etc/pki/tls/certs/ca-bundle.crt` Hat,CentOS,Fedora;由ca-certificates包提供)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								4. 检查`/etc/ssl/certs/ca-certificates.crt`存在(Ubuntu,Debian;由ca-certificates包提供)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								5. 检查`/usr/local/share/certs/ca-root-nss.crt`存在(FreeBSD;由ca_root_nss包提供)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								6. 检查`/usr/local/etc/openssl/cert.pem` X;由homebrew提供)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								7. 检查是否存在`C:\windows\system32\curl-ca-bundle.crt` (Windows)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								8. 检查是否存在`C:\windows\curl-ca-bundle.crt` (Windows)
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								https://curl.haxx.se/docs/caextract.html  
							 | 
						|||
| 
								 | 
							
								curl-ca-bundle.crt
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## curl 慢
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								连 strong vpn 就行
							 |