我的codeblocks为啥运行不了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的codeblocks为啥运行不了?相关的知识,希望对你有一定的参考价值。

每次编译完就会出现这样的字样:It seems that file has not been built yes.Do you want build it now?明明是build了的,点完确定再次运行还会出现上面的字样。我应该怎样操作?

编译器没配置好

你要确保你的下面这图里的那个红色箭头指的文件夹下面有一个bin文件夹,比如我这个是

E:\\Program\\MSYS2\\mingw64,那么我必须有一个E:\\Program\\MSYS2\\mingw64\\bin文件夹,然后蓝色框框里的那些xxxxx.exe必须在这个bin文件夹里面(前面的x86_64-w64-mingw32-可以不要,具体看你bin文件夹里面是什么)

参考技术A 如果安装了带
编译器

codeblocks
,还是不能编译,那可能就是设置问题了。
打开codeblocks
,
点菜单
中的
setting

选择
compiler
and
debugger。
会弹出一个设置页,请确认右边的compiler
选择的是GNU
GCC
Compiler.
下面有几个标签页
参考技术B 首先,您需要确保使用 mingw 或其他编译环境正确安装了代码封锁,其次,您需要构建一个用于编译和运行测试代码的项目追问

我应该怎样做呢

参考技术C 看一下settings->compiler->toolkhain
executables->linker
for
dynamin
libs是不是gcc编译器,如果不是的话改成gcc

setting
->
compiler
and
debugger

toolchain
executable
这里的编译器路径设置一下,或者就点旁边的auto
detect。
setting菜单,选择compiler
and
debugger
,选择
toolchain
executable,看看编译器路径设置对不对。

如果我用 codeBlocks 编译它,为啥我的代码运行得更快

【中文标题】如果我用 codeBlocks 编译它,为啥我的代码运行得更快【英文标题】:Why is my code running faster if i compiled it with codeBlocks如果我用 codeBlocks 编译它,为什么我的代码运行得更快 【发布时间】:2016-12-02 22:58:30 【问题描述】:

我想测量相机的 fps。我找到了一个简单的代码here。 如果我用 codeBlocks(在 Ununtu 上)编译代码并运行循环 600 次,结果是 27 fps。

如果我从终端编译它:

    g++ -Wall main.cpp -o  main -I/usr/local/include/ -lopencv_core -lopencv_highgui

结果为 14 fps。为什么终端编译后这么慢?

这里是代码

#include "opencv2/opencv.hpp"
#include <time.h>

using namespace cv;
using namespace std;

int main(int argc, char** argv)


// Start default camera
VideoCapture video(0);

// With webcam get(CV_CAP_PROP_FPS) does not work.
// Let's see for ourselves.

double fps;


// Number of frames to capture
int num_frames = 600;

// Start and end times
time_t start, end;

// Variable for storing video frames
Mat frame;

cout << "Capturing " << num_frames << " frames" << endl ;

// Start time
time(&start);

// Grab a few frames
for(int i = 0; i < num_frames; i++)

    video >> frame;


// End Time
time(&end);

// Time elapsed
double seconds = difftime (end, start);
cout << "Time taken : " << seconds << " seconds" << endl;

// Calculate frames per second
fps  = num_frames / seconds;
cout << "Estimated frames per second : " << fps << endl;

// Release video
video.release();
return 0;

【问题讨论】:

CodeBlocks 使用什么编译器以及带有什么优化标志?也永远不要在调试模式下测量任何东西。将 -O2 添加到命令行并重试。 我在命令行中添加了 -O2 但没有任何改变。在 codeBlocks 中选择了 GNU GCC 编译器,并且只选择了标志 -g(生成调试符号)。设置是默认的,我没有改变任何东西。 要比较编译器的速度,您必须与生成最快二进制文件的选项进行比较。您需要在两个编译器中找到使代码运行最快的选项,然后只比较那些最快的运行。 【参考方案1】:

您只需要像 Code::Blocks 的编译方式一样在命令行上进行编译。要查看它是什么,请转到编译器和调试设置并启用构建日志记录选项之一。更多细节在这里:Code::blocks verbose build

【讨论】:

我也尝试过。 g++ -Wall -fexceptions -O2 -I/usr/local/include/opencv2 -I/usr/local/include/opencv -c main.cpp -o main.o g++ -L/usr/local/bin -o main main .o -s -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab 但是有一些奇怪的行为。如果我从终端启动程序并最小化终端程序打印 27 fps。如果我留在终端上,它是 14 fps。我在计数过程中没有输出任何东西......【参考方案2】:

我想我解决了这个问题。 当光线很亮时,fps 很高。如果它很暗,则 fps 很低。所以也许与亮度有关......

【讨论】:

以上是关于我的codeblocks为啥运行不了?的主要内容,如果未能解决你的问题,请参考以下文章

CodeBlocks

为啥我的codeblocks不能调试?点击调试时显示的信息如下

如果我用 codeBlocks 编译它,为啥我的代码运行得更快

Ubuntu安装codeblocks

Code::Blocks运行不了

vscode调试的为啥会出现两个错误??