code blocks中怎么同时运行两个源程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了code blocks中怎么同时运行两个源程序相关的知识,希望对你有一定的参考价值。
参考技术A 打开code::blocks后不要打开或新建工程,直接打开或新建文件,编译或运行的都是这个单独的源程序,但是缺点是不能调试,要调试的话必须是工程。不过一般写的小程序也不用调试,怎么取舍就看自己了。由于在 Code::Block 中缺少“libgcc_s_dw2-1.dll”,OpenCV 程序无法运行
【中文标题】由于在 Code::Block 中缺少“libgcc_s_dw2-1.dll”,OpenCV 程序无法运行【英文标题】:OpenCV program cannot run because of missing "libgcc_s_dw2-1.dll" in Code::Block 【发布时间】:2012-10-03 01:55:03 【问题描述】:我编写了一个简单的 OpenCV 程序,尝试在同一目录中打开图像“kindle-fire-hd.jpg”。 IDE 是 Code::Block,OpenCV 版本是 2.4.2,编译器是 MinGW,它作为 Code::Block 的组件附加。代码如下:
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
Mat im = imread(argc == 2 ? argv[1] : "kindle-fire-hd.jpg", 1);
if (im.empty())
cout << "Cannot open image!" << endl;
return -1;
imshow("image", im);
waitKey(0);
return 0;
它可以正确构建和编译(没有任何错误和警告消息),并且我已经按照Getting started with OpenCV 2.4 and MinGW on Windows 7 中的说明配置了 Code::Block。
但是,当我“运行”这个程序时。它显示“缺少 libgcc_s_dw2-1.dll”消息。
并且,当我单击“确定”按钮时,控制台窗口会显示以下消息:
我尝试在 *** 上搜索相关问题,但他们的所有解决方案都无法解决此问题。谢谢。
【问题讨论】:
[更新] 如果代码中没有OpenCV代码,Code::Block可以正常运行。我做了一个测试,在空白 main() 函数中添加“cv::Mat impic = imread("kindle-fire-hd.jpg");。它显示了同样的问题。所以,我猜这是由与 OpenCV 库的链接? [更新] 这个问题我已经解决了。 【参考方案1】:最后,我解决了这个问题!
导致此“缺少 dll”问题的原因是附带 Code::Block 的 MinGW 编译器不完整。因此,您需要将所需的DLL文件下载到目录“C:\Program Files (x86)\CodeBlocks\MinGW\libexec\gcc\mingw32\4.4.1”,您还需要将该目录的路径添加到系统PATH环境变量。
在这种情况下,我下载了两个 DLL 文件:libgcc_s_dw2-1.dll 和 libstdc++-6.dll,即使只缺少一条关于 libgcc_s_dw2-1.dll 的错误消息。如果您忘记了第二个 libstdc++-6.dll,则在运行程序时会收到另一条丢失的消息。
第一个dll,libgcc_s_dw2-1.dll,可以关注Where Can I Get libgcc_s_dw2-1.dll?这个问题,其中下载链接在作者rodrigo选择的答案中列出。谢谢大佬!
第二个dll,libstdc++-6.dll,可以在http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/libstdc%2B%2B-4.6.2-1-mingw32-dll-6.tar.lzma/download下载
【讨论】:
我一直在试图弄清楚如何为此添加系统路径,但我无法弄清楚。我认为如果您包含一个路径名和目录应该是什么的示例,它会增加这个答案。我尝试了一个随机名称和我放入 dll 的文件的路径,但它没有工作。这只是我的电脑有问题还是我添加的路径有误?谢谢!【参考方案2】:出于某种原因 Code::blocks 没有附带该 DLL,尽管它可以通过 google 的站点下载。您可能需要另一个 DLL,即 libstdc++6.dll
人们会通知您在链接选项中链接 -static-libgcc、-static- 或 -static-libg++,至少使用我的版本(大概是您的版本)它不会解决问题,除非我做错了,这是合理的。
【讨论】:
是的,-static-libgcc、-static- 或 -static-libg++ 无法正常运行,因为我之前尝试过它们。 我刚刚从 google 的站点下载了它们,并将它们放在目录中,瞧。我确信可能有一种方法可以删除链接,但这并不是人们声称的那样。 说明如何处理 dll 会改善这个答案。即使在今天它仍然很重要! (2 年后)以上是关于code blocks中怎么同时运行两个源程序的主要内容,如果未能解决你的问题,请参考以下文章
code blocks怎么只能运行第一个打开的程序?要运行第二个,我得重新打开codeblocks。
如何在 code::blocks 中使用 graphics.h 编译和运行程序?