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