Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用QtCreator运行时指定外部库路径_Qt_Qt Creator_Qmake - Fatal编程技术网

使用QtCreator运行时指定外部库路径

使用QtCreator运行时指定外部库路径,qt,qt-creator,qmake,Qt,Qt Creator,Qmake,我在Windows上的Qt项目中包含了一个外部库。 构建过程工作得很完美,但当我尝试运行代码时,它失败了 我知道失败的原因是链接库DLL路径未包含在PATH环境变量中/它们不在可执行路径中 一种解决方案是将DLL路径添加到PATH环境变量中,或者在执行路径中复制DLL,但我希望避免这些,并找到一种自动化的解决方案 我知道可以将INSTALL命令添加到.pro文件中,因此,如果我将命令makeinstall添加到构建序列中,指定的依赖项将复制到执行路径中。有人能给我举个例子吗?我用于包含库的代码如

我在Windows上的Qt项目中包含了一个外部库。 构建过程工作得很完美,但当我尝试运行代码时,它失败了

我知道失败的原因是链接库DLL路径未包含在PATH环境变量中/它们不在可执行路径中

一种解决方案是将DLL路径添加到PATH环境变量中,或者在执行路径中复制DLL,但我希望避免这些,并找到一种自动化的解决方案

我知道可以将INSTALL命令添加到.pro文件中,因此,如果我将命令
makeinstall
添加到构建序列中,指定的依赖项将复制到执行路径中。有人能给我举个例子吗?我用于包含库的代码如下所示:

message(Importing SAT-Sdk)
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../SDK/dist/SAT-Sdk/lib/ -lsat_sdk
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../SDK/dist/SAT-Sdk/lib/ -lsat_sdkd
else:unix: LIBS += -L$$PWD/../../../SDK/dist/SAT-Sdk/lib/ -lsat_sdk

INCLUDEPATH += $$PWD/../../../SDK/dist/SAT-Sdk/include
DEPENDPATH += $$PWD/../../../SDK/dist/SAT-Sdk/include
另一个解决方案是指定DLL的路径,将命令添加到预配置的运行设置中,但我不知道确切的语法。谁能给我举个例子吗


感谢您的帮助

您可以在项目的生成环境或运行环境中设置PATH环境变量。例如,请参阅。

您可以将文件添加到
安装
目标,如中所述。您可以简单地添加如下内容:

target.files += $$PWD/../../../SDK/dist/SAT-Sdk/lib/sat_sdk.dll
尽管lib文件名可能取决于目标平台和调试/发布Windows版本(带有w/out“d”后缀)。就我个人而言,我将所有这些设置在某个中心位置,这样我就不需要复制所有这些路径等等。下面的例子(未测试,YMMV,有很多方法可以做到这一点……等等:)


谢谢,它很管用!如果有人知道使用安装命令的其他解决方案,我会等待。谢谢!这个解决方案就是我一直在寻找的
SAT_SDK_PATH = $$PWD/../../../SDK/dist/SAT-Sdk
SAT_SDK_LIB_PATH = $$SAT_SDK_PATH/lib
SAT_SDK_LIB = sat_sdk
win32:CONFIG(debug, debug|release):SAT_SDK_LIB = $${SAT_SDK_LIB}d

win32:SAT_SDK_LIB_BIN = $${SAT_SDK_LIB}.dll
else:SAT_SDK_LIB_BIN = lib$${SAT_SDK_LIB}.$${QMAKE_EXTENSION_SHLIB}

LIBS += -L$$SAT_SDK_LIB_PATH -l$$SAT_SDK_LIB
INCLUDEPATH += $SAT_SDK_PATH/include
DEPENDPATH += $SAT_SDK_PATH/include

target.files += $$SAT_SDK_LIB_PATH/$$SAT_SDK_LIB_BIN
target.path = #install path ...

!isEmpty(target.path): INSTALLS += target