【问题标题】:How to fix missing qt widget library makefile link?如何修复缺少的 qt 小部件库 makefile 链接?
【发布时间】:2015-05-26 17:40:14
【问题描述】:

我试图查看这个 annotation library,但它的 makefile 中存在与 QWidget 的链接错误

In file included from src/AnnotationsPixmapWidget.h:4:
src/PixmapWidget.h:4:10: fatal error: 'QWidget' file not found
#include <QWidget>
         ^

makefile 中没有提到这个小部件。

我尝试在此处添加类似链接:

当我这样做时,它给了我一个权限错误,我猜它正在编译一个已经存在的对象。

 make
/usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/Headers/QWidget \
        /usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/Headers/qwidget.h
make: /usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/Headers/QWidget: Permission denied
make: *** [src/tmp/AnnotationsPixmapWidget.o] Error 1

这里是它的位置: /usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/Headers/QWidget \ /usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/Headers/qwidget.h

Qt5Widgets.pc 包文件似乎包含了正确的目录:

Name: Qt5 Widgets
Description: Qt Widgets module
Version: 5.3.1
Libs: -F${libdir} -framework QtWidgets  
Libs.private: -F/usr/local/Cellar/qt5/5.3.1/lib -framework QtGui -framework QtCore -framework Carbon -framework Cocoa -lz -framework OpenGL -framework AGL  
Cflags: -I${includedir}/QtWidgets -I${includedir}
Requires: Qt5Core Qt5Gui

更新:尝试添加 QT += widgethere 但得到:Unknown module(s) in QT: widget

.pro 文件

# the target
TARGET = imgAnnotation
#DEFINES += NO_OPENCV # remove the '#' in order not to use opencv
OPENCV_ROOT = $(HOME)
#OPENCV_ROOT = c:/OpenCV2.0
#OPENCV_SUFFIX = 200


QT += widget

# some project options
TEMPLATE = app
CONFIG += release \
          warn_on \
          qt

# dirs for automatically generated files
MOC_DIR = src/tmp
OBJECTS_DIR = src/tmp
UI_DIR = src/ui

# source files
FORMS += src/*.ui
HEADERS += src/*.h \
    src/geometry/*.h \
    src/numeric/*.h
SOURCES += src/*.cpp

# lib/include dirs
INCLUDEPATH += src $${INCLUDEPATH}

# add opencv libraries and include path
!contains(DEFINES, NO_OPENCV) {
    LIBS += -lcv$${OPENCV_SUFFIX} -lcxcore$${OPENCV_SUFFIX} -L$${OPENCV_ROOT}/lib
    INCLUDEPATH += $${OPENCV_ROOT}/include
}

我真的不太了解makefile,我需要这个尽快,否则我打开这本书。 我在哪里/如何将它添加到 make 文件中?

【问题讨论】:

    标签: c++ qt makefile linker homebrew


    【解决方案1】:

    模块名称是widgets(复数),而不是widget(单数)。

    【讨论】:

    • 谢谢。 (不敢相信我错过了那个)。 /usr/local/Cellar/boost/1.57.0/include/boost/functional/hash/hash.hpp 是否有类似的模块,因为我现在对此头文件遇到相同的错误。而且我看不到提升模块..
    • @jsky 这些模块适用于 Qt 附带的内容,或者设计为可从 qmake 使用的内容。 qmake 没有 boost 模块(除非你写了一个),所以你必须手动添加它。这很容易,因为大块的 boost 是只有头文件的库。所以你只需要添加正确的包含路径。但这是一个单独的问题,而且很可能是重复的。搜索qmake boost先获得一些想法。
    • 感谢@Kuba Ober,我也注意到了这一点,但还没有时间修复它。
    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2015-09-19
    • 2017-02-25
    • 2023-03-12
    • 2015-12-23
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多