c++ - 在qmake项目中链接libcairo

标签 c++ linux qt embedded-linux qmake

我有一个 qmake 项目,我需要链接到它 libcairo在 ubuntu 桌面上。

我已使用 sudo apt-get install libcairo2-dev 将库下载到系统中.

命令sudo apt-get install libcairo2-dev给我输出-

I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lcairo

我能够编译 main.cpp

cc main.cpp -o main -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lcairo

包含 cairo header 的程序 #include <cairo.h>

但是我无法通过添加到 .pro 的以下 qmake 标志来编译 qmake 项目文件

LIBS += -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lcairo

还有一个额外的要求,我还需要将这个库链接到自定义工具链上(嵌入式 linux、yocto 包)。有人可以帮我解决这个问题吗?

如何使用交叉编译器指定包含路径?我如何有条件地指定桌面构建和目标构建的包含路径?(两者使用不同的 sdk)

最佳答案

您需要添加以下内容:

LIBS+= -lcairo

INCLUDEPATH+=/usr/include/cairo
INCLUDEPATH+=/usr/include/glib-2.0 
INCLUDEPATH+=/usr/lib/x86_64-linux-gnu/glib-2.0/include
INCLUDEPATH+=/usr/include/pixman-1
INCLUDEPATH+=/usr/include/freetype2
INCLUDEPATH+=/usr/include/libpng12

yocto 的配方应该很简单,你只需要在配方中添加以下行:

DEPENDS = "cairo"

关于c++ - 在qmake项目中链接libcairo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48685693/

相关文章:

c++ - 如何配置 Qt Creator 以在 Windows 中使用 Boost

c++ - 如何在 C++ 中使用多个搜索值查找项目?

c++ - 如何循环计数,数字和字母的程序?

c++ - Cuda中的链接错误

linux - JVM控制系统线程

linux - Printf 在到达空字符时不会停止打印

linux - 自定义内核模块集成

c++ - 分层数据的 QAbstractItemModel 的实现

qt - 添加项目时如何保持项目 View 滚动到底部?

c++ - 是否有任何 qt 信号用于 sql 数据库更改?