【问题标题】:Qt - QMAKE_LFLAGS throws "Command not found" when using -LQt - 使用 -L 时 QMAKE_LFLAGS 抛出“找不到命令”
【发布时间】:2015-12-21 19:20:32
【问题描述】:

我正在尝试在 Ubuntu 14.04 下编译一个 qt widgets 项目

我的 .pro 文件有一行如下所示:

QMAKE_LFLAGS += -L/usr/local/lib

我几乎找不到关于 -L 标志的任何文档,但从互联网上的其他项目来看,语法看起来不错。但是,Qt Creator 3.5.1 和 NetBeans 8.1 都无法编译(或者我应该说是链接)项目并出现相同的错误:

L/usr/local/lib: Command not found

请注意,L 之前的连字符现已消失。 但是,我设法使用终端使用以下命令集构建项目:

make clean
~/Qt/5.5/gcc_64/bin/qmake 
make

clean 至关重要,因为没有它,终端会显示相同的错误。 然后我确保我的make 位于/usr/bin/make 并尝试在 Qt Creator 中修改我的构建步骤,使其看起来像这样(项目构建目录用黑色填充):

这也没有给我任何结果,它仍然无法在 IDE 中的任何构建/重建上进行编译,并出现同样的错误。我尝试放在那里的任何其他标志都会出现类似的错误(例如,-pthread 给了我pthread: Command not found)。

我花了几个小时试图解决这个问题。我该如何解决?

【问题讨论】:

    标签: c++ qt compilation linker qt-creator


    【解决方案1】:

    好吧,又花了一些时间后,我注意到我的 .pro 文件的头部看起来像这样:

    QMAKE_CXX = "g++-4.9"
    QMAKE_CC = "g++-4.9"
    QMAKE_LINK = $$(CXX)
    

    CXX 是一个应该等于g++-4.9 的环境变量。原来不是。做成之后的样子:

    QMAKE_CXX = "g++-4.9"
    QMAKE_CC = "g++-4.9"
    QMAKE_LINK = "g++-4.9"
    

    问题得到解决并成功编译。耶!

    【讨论】:

    • 通常您不应手动覆盖QMAKE_CXXQMAKE_CCQMAKE_LINK,而是适当配置您的套件。要将内容链接到您的库,最好添加到 qmake 变量 LIBS 而不是 QMAKE_LINK。这是使用 qmake 的预期和更便携的方式。
    猜你喜欢
    • 2018-08-13
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多