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 就行 |