C++ LNK1146:未使用选项';指定参数/LIBPATH:';Qt错误
我将在linux上开发的Qt应用程序导入windows。现在,当我构建项目时,出现以下错误:C++ LNK1146:未使用选项';指定参数/LIBPATH:';Qt错误,c++,qt,qt4,qt-creator,C++,Qt,Qt4,Qt Creator,我将在linux上开发的Qt应用程序导入windows。现在,当我构建项目时,出现以下错误: error: LNK1146: no argument specified with option '/LIBPATH:' 我在windows上创建了一个新项目,效果非常好。导致此问题的可能原因之一是项目路径中有空格,但我的项目路径中没有空格。请告诉我如何解决此问题 这是我的.pro文件: #------------------------------------------------- # #
error: LNK1146: no argument specified with option '/LIBPATH:'
我在windows上创建了一个新项目,效果非常好。导致此问题的可能原因之一是项目路径中有空格,但我的项目路径中没有空格。请告诉我如何解决此问题
这是我的.pro文件:
#-------------------------------------------------
#
# Project created by QtCreator 2014-12-08T09:19:31
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = FirstProject
TEMPLATE = app
QMAKE_CXXFLAGS += -std=c++11
SOURCES += main.cpp\
firstscreen.cpp \
secondscreen.cpp \
thirdscreen.cpp
INCLUDEPATH += C:\Users\user_name\tango\ \
C:\Users\user_name\omniORB4\ \
C:\Users\user_name\omnithread.h
HEADERS += firstscreen.h \
C:\Users\user_name\tango\ \
C:\Users\user_name\omniORB4\ \
C:\Users\user_name\omnithread.h \
secondscreen.h \
thirdscreen.h
LIBS += -L -lomnithread \
-L -lomniORB4 \
-L -ltango
FORMS += firstscreen.ui \
secondscreen.ui \
thirdscreen.ui
在当前的.pro文件中,您指定了库名称,但没有指定外部lib的路径。这些'-l'和'-l'键正是用于此目的 一些建议:
- 使用相对路径
- 在.pro文件中使用一些变量,如DESTDIR,并在lib path参数中引用它们,如-L“$$DESTDIR”
- 使用相对路径
- 在.pro文件中使用一些变量,如DESTDIR,并在lib path参数中引用它们,如-L“$$DESTDIR”
- 使用相对路径
- 在.pro文件中使用一些变量,如DESTDIR,并在lib path参数中引用它们,如-L“$$DESTDIR”
- 使用相对路径
- 在.pro文件中使用一些变量,如DESTDIR,并在lib path参数中引用它们,如-L“$$DESTDIR”
C:\Qt\Tools\QtCreator\bin\jom.exe -U -f Makefile.Debug > x.txt
(当然,您必须在qmake输出中提到的目录中调用它)
接下来,我检查了x.txt中的所有/LIBPATH:executions。因此,很容易找到罪魁祸首并修复.pro文件。在.pro文件中,分配给LIBS时,问题可能是空的“-L”。您需要在那里为以下指定的库“-l”写入路径 我修复了这样一个不太明显的情况: 因为问题隐藏在JOM使用的响应文件中,所以我手动启动了由qmake执行的JOM。只需复制JOM调用并使用附加的-U参数执行它,即可查看响应文件的内容:
C:\Qt\Tools\QtCreator\bin\jom.exe -U -f Makefile.Debug > x.txt
(当然,您必须在qmake输出中提到的目录中调用它)
接下来,我检查了x.txt中的所有/LIBPATH:executions。因此,很容易找到罪魁祸首并修复.pro文件。在.pro文件中,分配给LIBS时,问题可能是空的“-L”。您需要在那里为以下指定的库“-l”写入路径 我修复了这样一个不太明显的情况: 因为问题隐藏在JOM使用的响应文件中,所以我手动启动了由qmake执行的JOM。只需复制JOM调用并使用附加的-U参数执行它,即可查看响应文件的内容:
C:\Qt\Tools\QtCreator\bin\jom.exe -U -f Makefile.Debug > x.txt
(当然,您必须在qmake输出中提到的目录中调用它)
接下来,我检查了x.txt中的所有/LIBPATH:executions。因此,很容易找到罪魁祸首并修复.pro文件。在.pro文件中,分配给LIBS时,问题可能是空的“-L”。您需要在那里为以下指定的库“-l”写入路径 我修复了这样一个不太明显的情况: 因为问题隐藏在JOM使用的响应文件中,所以我手动启动了由qmake执行的JOM。只需复制JOM调用并使用附加的-U参数执行它,即可查看响应文件的内容:
C:\Qt\Tools\QtCreator\bin\jom.exe -U -f Makefile.Debug > x.txt
(当然,您必须在qmake输出中提到的目录中调用它)
接下来,我检查了x.txt中的所有/LIBPATH:executions。因此很容易找到罪魁祸首并修复.pro文件。出现问题的原因是指定了标志
-L
,但没有提供库路径:
LIBS += -L -lomnithread \
-L -lomniORB4 \
-L -ltango
要解决此问题,必须提供.lib文件所在的路径,类似于:
LIBS += -L"C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L"C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L"C:\\Users\\user_name\\tango\\lib" -ltango
记住:在-L
和路径字符串之间不能有空格
因此,这样做也会抛出相同的错误:
LIBS += -L "C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L "C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L "C:\\Users\\user_name\\tango\\lib" -ltango
出现此问题的原因是指定了标志
-L
,但未提供库路径:
LIBS += -L -lomnithread \
-L -lomniORB4 \
-L -ltango
要解决此问题,必须提供.lib文件所在的路径,类似于:
LIBS += -L"C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L"C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L"C:\\Users\\user_name\\tango\\lib" -ltango
记住:在-L
和路径字符串之间不能有空格
因此,这样做也会抛出相同的错误:
LIBS += -L "C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L "C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L "C:\\Users\\user_name\\tango\\lib" -ltango
出现此问题的原因是指定了标志
-L
,但未提供库路径:
LIBS += -L -lomnithread \
-L -lomniORB4 \
-L -ltango
要解决此问题,必须提供.lib文件所在的路径,类似于:
LIBS += -L"C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L"C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L"C:\\Users\\user_name\\tango\\lib" -ltango
记住:在-L
和路径字符串之间不能有空格
因此,这样做也会抛出相同的错误:
LIBS += -L "C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L "C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L "C:\\Users\\user_name\\tango\\lib" -ltango
出现此问题的原因是指定了标志
-L
,但未提供库路径:
LIBS += -L -lomnithread \
-L -lomniORB4 \
-L -ltango
要解决此问题,必须提供.lib文件所在的路径,类似于:
LIBS += -L"C:\\Users\\user_name\\omnithread\\lib" -lomnithread \
-L"C:\\Users\\user_name\\omniORB4\\lib" -lomniORB4 \
-L"C:\\Users\\user_name\\tango\\lib" -ltango
请记住:两个窗口之间不能有空格