xmake-io / xmake

🔥 A cross-platform build utility based on Lua
https://xmake.io
Apache License 2.0
10.04k stars 786 forks source link

xmake重新安装opencv没输出 #2464

Closed xiaomi2077 closed 2 years ago

xiaomi2077 commented 2 years ago

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。但是命令没有任何输出,如下图。 image 查看~/.xmake/packages/o/opencv/4.5.5/发现新增有4709...文件夹,但里面是空的。下图中其他三个文件夹是之前编译好的opencv,带gtk和不带gtk。 image 执行xmake f -c,安装命令还是没输出。 image

是不是哪里缓存没有清掉?

期待的结果

顺利安装带有gtk的opencv

工程配置

No response

附加信息和错误日志

No response

xiaomi2077 commented 2 years ago

执行xmake l os.arch输出: image

waruqi commented 2 years ago

不要去用 xmake requires 。。全走 add_requires/add_packages 在 xmake.lua 里面统一配置,直接编译

如果要单独管理包,就用 xrepo 命令

xiaomi2077 commented 2 years ago

image 执行xrepo install -f "gtk=true" opencv没输出,但是执行xrepo install -f "gtk=true" opencv有可以正常安装。出现这种问题是不是包的lua脚本写错了?

image 并且我执行命令xrepo info opencv看opencv的编译选项,也有gtk

看输出好像xrepo也是走的xmake require,这两个命令有啥区别吗?

waruqi commented 2 years ago

xmake require 目前用于工程内管理有缓存,也会读当前工程 xmake.lua ,通常用户不需要用,走 xmake 编译,内部自动会调用

xrepo 是独立命令,不跟当前工程相关,独立管理包

如果你只是项目中用,通常 xrepo 也不需要用

走 xmake 直接编译就行,xmake.lua里面配置的包,会给你自动装

waruqi commented 2 years ago

你先走 add_requires + add_packages 试下,看是否有问题

xiaomi2077 commented 2 years ago

我的问题基本解决,下面说下解决思路

我的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安一下。如果安装了,输出如下: image 2、xmake.lua中记得加上libpng包,引用时写在opencv后面,即:add_packages("opencv","libpng")

完整的xmake.lua如下: image

xiaomi2077 commented 2 years ago

现在问题基本解决了,但是intellisense在第2行画红线,好像找不到这个库,能编译成功。(已在c_cpp_propertiess.jon中指定compileCommand./vscode/compile_commands.jsonimage image

如何才能去掉这个红线呢?

waruqi commented 2 years ago

参考下 https://github.com/xmake-io/xmake-vscode/issues/40 然后确认 compile_commands.json 是否生成。。如果插件激活,每次 xmake.lua 配置改动,都会自动生成。。

如果生成了,就看下,里面有没有带上 opencv 相关includedir 。。确认路径是否 ok

这里我先 close 了,intelligense 问题可以到 xmake-vscode/issues 下反馈