我刚刚开始使用 CodeLite IDE 学习 C++。一切正常,但是我遇到了程序编译但立即退出的问题。我能够通过将 libstdc++-6.dll 文件从 MinGW 复制到与程序 exe 相同的文件夹中来修复它。虽然我不介意这样做,但我想知道是否有一种方法可以使 CodeLite 在每个项目中自动包含此文件。
最佳答案
您的程序崩溃是因为程序找不到它需要的依赖项(在本例中是 libstdc++)。对于某些背景,您可以有两种类型的依赖关系:静态和动态。静态依赖性内置您的程序。动态依赖项依赖于在运行时加载(Windows 调用这些 DLL)。
正如 drescherjm 在评论中提到的,操作系统使用 path 变量来存储依赖项、命令行程序路径和其他信息。只需进入 Windows 搜索按钮,写入“环境变量”,然后单击“系统变量”下的“路径”(使 dll 可在系统范围内访问)或“用户变量”(使 dll 仅可用于你的帐户)。然后您可以添加新的文件夹路径,也可以将其复制到现有文件夹路径。请注意,Windows 还将搜索与可执行文件相同的目录(这就是复制 DLL 起作用的原因)。
请注意,如果您曾经在线分发您的程序,您还需要确保用户具有这些动态依赖项。您可以将 DLL 包含在 bundle 中(注意许可),或者告诉他们在哪里可以找到它。
关于c++ - 为什么必须复制 libstdc++-6.dll 才能运行我的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918798/