【问题标题】:Link libcairo in qmake project在 qmake 项目中链接 libcairo
【发布时间】:2018-02-08 12:36:23
【问题描述】:

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

我已使用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 标头的程序为 #include <cairo.h>

但我无法编译 qmake 项目,并将以下 qmake 标志添加到 .pro 文件中

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)

【问题讨论】:

    标签: c++ linux qt embedded-linux qmake


    【解决方案1】:

    您需要添加以下内容:

    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 recipe 应该很简单,你只需要在 recipe 中添加以下行:

    DEPENDS = "cairo"
    

    【讨论】:

    • g++ -c -pipe -g -std=c++0x -Wall -W -fPIC -DQT_QML_DEBUG -I../cairoTest -I. -II/usr/include/cairo -II/usr/include/glib-2.0 -II/usr/lib/x86_64-linux-gnu/glib-2.0/include -II/usr/include/pixman-1 -II/usr /include/freetype2 -II/usr/include/libpng12 -I/opt/Qt/5.5/gcc_64/mkspecs/linux-g++ -o 这是它正在生成的编译编译标志
    • 它正在与上述最近的编辑一起工作,您能否解释一下当前的修改与批处理 INCLUDEPATH 有何不同?
    • 另外让我知道,我将如何使用交叉编译器指定此包含路径。如何有条件地指定桌面构建和目标构建的包含路径?
    • 对于 INCLUDEPATH 我不小心添加了 -I,这是不需要的,这就是它首先不起作用的原因。对于交叉编译的 yocto 配方,您只需添加“DEPENDS = “cairo””行,其余的 yocto 应该小心。
    • 目标设备中的包含路径会不同吗?如果它不同,我们将如何处理它?
    猜你喜欢
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多