我有一个 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/