gpt4 book ai didi

c++ - Qt Creator LIBS 路径有问题吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:41 28 4
gpt4 key购买 nike

我在 QtCreator 中添加外部库文件时遇到了一个简单但非常烦人的问题。我通过 .pro 文件中的以下行添加它们:

INCLUDEPATH += $$quote(D:/dcmtk-3.6.0/Prefix Files/include)

LIBS += $$quote(-LD:/dcmtk-3.6.0/Lib files/Release/) \
-ladvapi32 \
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\

LIBS += $$quote(-LD:/dcmtk-3.6.0/Lib files/Debug/) \
-ladvapi32 \
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\

但每次它都给出错误 :-1: error: LNK1181: cannot open input file 'files/Release).obj'

我知道问题是由于那里的空格而发生的,尽管尝试按照文档进行操作,但它似乎不起作用。我还认为可能是 QtCreator 没有更新我正在尝试进行的更改。有什么建议吗?谢谢。

编辑解决答案:

我将 .pro 文件中的代码更改为:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TEMPLATE = app
TARGET = NewApp


##QMAKE_CXXFLAGS_DEBUG += /MTd

SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui
DEFINES += _REENTRANT


QMAKE_CFLAGS_RELEASE -= -MD
QMAKE_CFLAGS_RELEASE = -MT
QMAKE_CFLAGS_DEBUG -= -MDd
QMAKE_CFLAGS_DEBUG = -MTd
QMAKE_CXXFLAGS_RELEASE -= -MD
QMAKE_CXXFLAGS_RELEASE += -MT
QMAKE_CXXFLAGS_DEBUG -= -MDd
QMAKE_CXXFLAGS_DEBUG += -MTd

QMAKE_LFLAGS_DEBUG += /NODEFAULTLIB:msvcrtd.lib
QMAKE_LFLAGS_RELEASE += /NODEFAULTLIB:msvcrt.lib

INCLUDEPATH += $$quote(D:/dcmtk-3.6.0/Prefix Files/include/)


CONFIG( debug, debug|release ) {
LIBS += $$quote(-LD:/dcmtk-3.6.0/LibFiles/Debug/) \
-ladvapi32\
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\
}


else {
LIBS += $$quote(-LD:/dcmtk-3.6.0/LibFiles/Release/) \
-ladvapi32\
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\
}

这里我必须添加几行:

QMAKE_LFLAGS_DEBUG += /NODEFAULTLIB:msvcrtd.lib
QMAKE_LFLAGS_RELEASE += /NODEFAULTLIB:msvcrt.lib

因为,如果你打开MT,你必须使用/NODEFAULTLIB开关来忽略这些库:libc.lib、msvcrt.lib、libcd.lib , libcmtd.lib, msvcrtd.lib,否则会出现链接问题。

我还通过这个 link 找到了 LIB 问题的答案引用的地方:

“正常的

debug:LIBS += ...
else:LIBS += ...

当用户天真地使用 CONFIG += debugCONFIG += release 在调试和发布版本之间切换时,解决方案会中断(他们确实这样做了;没有人记得说CONFIG -= release release_and_debug before CONFIG += debug :).

这是调试范围的规范方式:

CONFIG( debug, debug|release ) {
# debug
} else {
# release
}

无论如何,非常感谢。

最佳答案

在 .pro 文件中指定库链接位置的正确方法实际上是通过 QMAKE_LIBDIR 变量:

QMAKE_LIBDIR += "D:/dcmtk-3.6.0/Lib files/Release/"

您上面的问题几乎可以肯定是因为缺少引号(空格被解释为参数中断,您需要它是一个参数)。

关于c++ - Qt Creator LIBS 路径有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com