首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件或目录不存在

文件或目录不存在
EN

Stack Overflow用户
提问于 2014-04-25 10:06:47
回答 1查看 6K关注 0票数 0

我正在将一个项目从Qt4.x迁移到5,但是.pro文件给我带来了很多错误:

代码语言:javascript
复制
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lHDP
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -l../../Qwt/qwt-5.2.0/lib/debug/qwt5
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lqenc
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lzlibwapi
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lqextserialport
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lqxmpp
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -ljson_lib
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lSerialPort1

当我注释那些包含-lWhatever的行时,我从下面的其他行得到相同的错误,

代码语言:javascript
复制
MOC_DIR += ./GeneratedFiles/release
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR = GeneratedFiles
include(Swibz.pri)

以下是完整的代码:

代码语言:javascript
复制
TEMPLATE = app
TARGET = Swibz
DESTDIR = ../Release
QT += core gui network webkit webkitwidgets xml opengl serialport
CONFIG += release
DEFINES += _WINDOWS QT_LARGEFILE_SUPPORT QT_XML_LIB QT_OPENGL_LIB QT_NETWORK_LIB QT_DLL QWT_DLL
INCLUDEPATH += ../../../SprintLib \
    ./GeneratedFiles \
    ./GeneratedFiles/release \
    GeneratedFiles/release \
    . \
    ./../../Qwt/qwt-5.2.0/src \
    ../../../QENC/QENC \
    ../../../zlib-1.2.5 \
    ../../../serial/qextserialport-1.2win-alpha \
    ../../../qxmpp-0.3.0/src \
    ../../../JSON \
    ../../../QtSerialPort/qtserialport/include
LIBS += -L"../../../SprintLib/release" \
    -L"../../../QENC/release" \
    -L"../../../zlib-1.2.5/contrib/vstudio/vc9/x86/ZlibDllRelease" \
    -L"../../../serial/qextserialport-1.2win-alpha/Release" \
    -L" qxmpp-0.3.0/lib" \
    -L"../../../JSON/Release" \
    -L"../../../QtSerialPort/qtserialport/src/serialport/release" \
    -lopengl32 \
    -lglu32 \
    -lgdi32 \
    -luser32 \
    -lHDP \ #cannot find
    -l../../Qwt/qwt-5.2.0/lib/debug/qwt5 \ #cannot find
    -lqenc \ #cannot find
    -lzlibwapi \ #cannot find
    -lqextserialport \ #cannot find
    -lsetupapi \
    -lqxmpp \ #cannot find
    -ljson_lib \ #cannot find
    -lSerialPort1 #cannot find
DEPENDPATH += ./ 
MOC_DIR += ./GeneratedFiles/release #cannot find
OBJECTS_DIR += release #cannot find
UI_DIR += ./GeneratedFiles #cannot find
RCC_DIR = ./GeneratedFiles #cannot find
include(Swibz.pri) #cannot find
#win32:RC_FILE = ./Swibz.rc
TRANSLATIONS = ln_en.ts
TRANSLATIONS = ln_lv.ts
TRANSLATIONS = ln_lt.ts
TRANSLATIONS = ln_es.ts

CODECFORTR     = UTF-8

会是什么?我有文件夹GeneratedFiles和版本,所以我不知道有什么问题。而且,我不太明白./ ./.和.的意思,如果有人能向我解释的话,也许我能更容易理解这个问题。

编辑:这里有更多的错误,当我到达-lthingys时,这是没有意义的

代码语言:javascript
复制
g++: error: DEPENDPATH: No such file or directory
g++: error: MOC_DIR: No such file or directory
g++: error: +=: No such file or directory
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 10:31:42

解释

开关的使用与GCC套间的手册不一致。(文档)

链接器搜索库的标准目录列表,它实际上是一个名为liblibrary.a ary.a的文件。然后,链接器使用该文件,就好像它是按名称精确指定的一样。 搜索的目录包括几个标准的系统目录以及您用-L指定的任何目录。

应该只有名称/文件出现在-l开关之后。

还请注意,如果您指定了一个名称,而不是一个文件名(扩展名),链接器将查找一个lib<name>.(a|so|dll)文件。

qxmpp示例:

您指定了-L" qxmpp-0.3.0/lib",它在查找库时将qxmpp-0.3.0/lib目录(位于当前项目目录中)添加到要解析的目录列表中。然后,-lqxmpp指示链接器在目录列表中查找名为libqxmpp.a的文件。

因此,必须检查每个未找到的库:有一个-L指令指向库所在的正确目录(通常./将引用项目的根目录,../其父目录等),并检查是否在-l指令中使用正确的名称(完整的文件名或缩写的名称)调用库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23290050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档