C++ 由于找不到库,生成后运行可执行文件失败-如何导出路径

C++ 由于找不到库,生成后运行可执行文件失败-如何导出路径,c++,qt,qmake,C++,Qt,Qmake,在我的子目录-项目中,我有两个库和一个使用这些库的应用程序。 这些库本身使用预构建的第三方库。 我的应用程序编译并链接,但无法运行可执行文件,错误为启动程序失败。路径或权限错误? 如果我导航到可执行文件并尝试运行它,它会抱怨缺少库。然后,我将所有必需的库复制到可执行文件的文件夹中,现在双击该文件夹即可启动。但是,QtCreator无法在生成后启动可执行文件。我的项目设置目标之一是不复制文件,既不复制头文件,也不复制库文件。标题应该从其源include dir引用,libs应该从其build di

在我的
子目录
-项目中,我有两个库和一个使用这些库的应用程序。 这些库本身使用预构建的第三方库。 我的应用程序编译并链接,但无法运行可执行文件,错误为启动程序失败。路径或权限错误?

如果我导航到可执行文件并尝试运行它,它会抱怨缺少库。然后,我将所有必需的库复制到可执行文件的文件夹中,现在双击该文件夹即可启动。但是,QtCreator无法在生成后启动可执行文件。我的项目设置目标之一是不复制文件,既不复制头文件,也不复制库文件。标题应该从其源include dir引用,libs应该从其build dir引用

我正在Windows上使用
Qt5.3.2
qmake
,使用shadowbuilds。我也试过Qt5.7。这也不能直接启动我的应用程序,所以它似乎不是一个bug。我想我只是不知道如何正确设置我的项目

对于构建,我指定了库路径,比如
LIBS+=-L$${OUT\u PWD}/./mylib/debug-lmylib
,它显然是有效的。 我必须告诉库的路径,以便应用程序在构建后启动(从QtCreator运行),而不必将所有库复制到可执行文件的文件夹中,有哪些选项

更新:


我在QtCreator中查看了项目的运行设置,发现工作目录有点错误。我把它更新到了我的影子构建目录。现在,在我复制了所有DLL之后,QtCreator就可以启动应用程序了。但是,在复制之前,我仍然收到错误
程序意外地完成了
,根据我的经验,这是运行时“我找不到库”问题的典型消息。

您是在复制.lib文件还是.dll文件?我在复制.dll文件,我会动态链接。“程序意外地完成了”是几乎所有运行时错误的代码。作为一般规则,您希望复制应用程序所需的DLL,如果只是为了确保您手头有正确的版本并且很容易找到。如果搜索顺序发现了错误的文件,指望它们“在那里”会有找不到它们或捕获错误版本的风险。当然,你是对的。但是当我遇到这个错误时,它总是被提到的问题。我一定很幸运;)