Closed xiaomi2077 closed 2 years ago
执行xmake l os.arch
输出:
不要去用 xmake requires 。。全走 add_requires/add_packages 在 xmake.lua 里面统一配置,直接编译
如果要单独管理包,就用 xrepo 命令
执行xrepo install -f "gtk=true" opencv
没输出,但是执行xrepo install -f "gtk=true" opencv
有可以正常安装。出现这种问题是不是包的lua脚本写错了?
并且我执行命令xrepo info opencv
看opencv的编译选项,也有gtk
看输出好像xrepo也是走的xmake require,这两个命令有啥区别吗?
xmake require 目前用于工程内管理有缓存,也会读当前工程 xmake.lua ,通常用户不需要用,走 xmake 编译,内部自动会调用
xrepo 是独立命令,不跟当前工程相关,独立管理包
如果你只是项目中用,通常 xrepo 也不需要用
走 xmake 直接编译就行,xmake.lua里面配置的包,会给你自动装
你先走 add_requires + add_packages 试下,看是否有问题
我的问题基本解决,下面说下解决思路
我的os.arch=arm64-v8
我的需求:使用opencv显示图片
如何做:使用xmake安装opencv,并指定gtk=true
安装时需要注意的是:
1、opencv依赖gtk,仓库中虽然有gtk的包,但是arm64-v6的不支持。要保证电脑上有gtk+-3.0,可以使用pkg-config gtk+-3.0 --libs --cflags
查看。没有安装就apt安一下。如果安装了,输出如下:
2、xmake.lua中记得加上libpng
包,引用时写在opencv
后面,即:add_packages("opencv","libpng")
完整的xmake.lua如下:
现在问题基本解决了,但是intellisense在第2行画红线,好像找不到这个库,能编译成功。(已在c_cpp_propertiess.jon
中指定compileCommand
为./vscode/compile_commands.json
)
如何才能去掉这个红线呢?
参考下 https://github.com/xmake-io/xmake-vscode/issues/40 然后确认 compile_commands.json 是否生成。。如果插件激活,每次 xmake.lua 配置改动,都会自动生成。。
如果生成了,就看下,里面有没有带上 opencv 相关includedir 。。确认路径是否 ok
这里我先 close 了,intelligense 问题可以到 xmake-vscode/issues 下反馈
Xmake 版本
xmake v2.6.7+HEAD.93b7245
操作系统版本和架构
Linux nx-desktop 4.9.140-tegra #1 SMP PREEMPT Fri Apr 16 01:50:20 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux
描述问题
通过
xmake require --extra="{configs={gtk=true}}" opencv
命令安装带gtk的opencv。但是命令没有任何输出,如下图。 查看~/.xmake/packages/o/opencv/4.5.5/
发现新增有4709...文件夹,但里面是空的。下图中其他三个文件夹是之前编译好的opencv,带gtk和不带gtk。 执行xmake f -c
,安装命令还是没输出。是不是哪里缓存没有清掉?
期待的结果
顺利安装带有gtk的opencv
工程配置
No response
附加信息和错误日志
No response