gpt4 book ai didi

我们可以使用 C 代码用 gcc 编译 OpenCv-3.3.0 和 GTK+3 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:05 26 4
gpt4 key购买 nike

我正在寻找一个 C 处理图像库,发现 OpenCV 库是最方便的(根据人们的建议)。所以我决定安装最新版本,但是当我试图将它包含到我现有的 GTK+ (C) 项目中时,它给了我编译错误:

undefined reference to cvRound

确切消息是:

$ gcc ./bin/app.o \ 
$(pkg-config --libs glib-2.0) \
$(pkg-config --libs pango) \
$(pkg-config --libs gtk+-3.0) \
$(pkg-config --libs gmodule-2.0) \
$(pkg-config --libs opencv) -o bin/app

./bin/app.o : Dans la fonction « cvPointFrom32f » :
app.c:(.text+0x557) : référence indéfinie vers « cvRound »
app.c:(.text+0x56d) : référence indéfinie vers « cvRound »
./bin/app.o : Dans la fonction « cvReadInt » :
app.c:(.text+0xe74) : référence indéfinie vers « cvRound »
./bin/app.o : Dans la fonction « cvEllipseBox » :
app.c:(.text+0x10dc) : référence indéfinie vers « cvRound »
app.c:(.text+0x10fe) : référence indéfinie vers « cvRound »
collect2: error: ld a retourné le statut de sortie 1
make: *** [Makefile:38: bin/app] Error 1

所以,我想知道,我该怎么做才能使用 OpenCV 和 GTK+(因为我不需要 OpenCV UI,因为我已经有了)?

我还尝试通过 g++ 删除 gcc(但这也没有解决问题),现在它编译了,但是当我尝试使用以下命令运行我的应用程序时:

$ ./app

我得到了

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

我想我要放弃安装 OpenCV 以使其与 GTK+ 一起工作...

P.S:如果您有任何建议或图书馆推荐 (C),我接受。

最佳答案

您的 OpenCV 版本很可能是使用 GTK+ 2 构建的,因此当您将 GTK+ 3 应用程序与 OpenCV 链接时,符号会发生冲突。如错误消息中所述,您不能在同一进程中同时拥有两个版本。因此,您只需要在启用 GTK+ 3 支持的情况下重建 OpenCV。

顺便说一句,您不需要在调用 pkg-config 时明确指定每个依赖项,只需指定顶层依赖项即可。所以 $(pkg-config --libs gtk+-3.0 opencv) 应该足够了。

关于我们可以使用 C 代码用 gcc 编译 OpenCv-3.3.0 和 GTK+3 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47193011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com