我刚刚安装了Dev C++,我正在学习C编程.我使用的代码是
#include <stdio.h>
int main()
{
printf("Hello world");
getch();
}
Run Code Online (Sandbox Code Playgroud)
我把它保存为.c文件.当我编译它工作正常,但当我编译并运行它说源文件没有编译.所以我搜索了buncha的东西,并在youtube上看到了这个视频,告诉你如何修复它.我还看到谷歌上的其他论坛提出同样的建议......然而,在做了什么之后问道,现在我甚至无法编译我的代码.我收到这个错误
Compiler: Default compiler
Executing C:\Dev-Cpp\bin\gcc.exe...
C:\Dev-Cpp\bin\gcc.exe "C:\Users\ubaid\Documents\C\Untitled1.c" -o "C:\Users\ubaid\Documents\C\Untitled1.exe" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
gcc.exe: Internal error: Aborted (program collect2)
Please submit a full bug report.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
Execution terminated
Run Code Online (Sandbox Code Playgroud)
我也用过这个链接上的问题,但仍然没有运气.. http://learntogeek.com/miscellaneous/solved-source-file-not-compiled-error-in-dev-cpp/
我正在使用Windows 8
可能重复:
C/C++中的long long
为项目Euler问题编写一个简单的程序.拒绝编译,因为"整数常量对于"long"类型"来说太大,即使它应该在unsigned long long的大小限制内.使用dev-c ++编译器.
有问题的代码:
#include <iostream>
bool isprime (unsigned long long i)
{
if(i==1||i==0) return false;
if(i==2) return true;
for(unsigned long long k=2;k!=i-1;k++)
{
if(i%k==0) return false;
}
return true;
}
int main()
{
for(unsigned long long i=600851475143;i>=0;i--) //problematic line
{
if(isprime(i))
{
std::cout<<i;
std::cin.get();
return 0;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我只是学习如何编写基于循环的范围,但唯一的问题是我的编译器,Orwell Dev-C++似乎不支持它的默认模式(即c ++ 98).如何将此模式更改为支持此功能的另一个模式(以及C++ 0x的其他功能).谢谢.也:
这是错误消息:[错误]基于范围的for-for循环在C++ 98模式下是不允许的
我运行Windows 8
我的Dev C++版本是5.3.0.3
编译器是TDM-GCC 4.6.1 64位.
谢谢大家
这可能是一个愚蠢的问题,但我正在寻找大约3小时的答案.
¿如何用(Dev-C++)MinGW编译64位二进制文件?
我已经知道MinGW默认支持64位,但我无法激活此选项.
我试过"-m64",但它说:"对不起,未实现:64位模式未编译"
我正在使用Windows-7上的Dev-C++
我知道如何在MSVC++上做到这一点,但我不想要MSVC++(道德问题的原因)
我正在尝试编译,仅用于测试目的:
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
// Test compiling mode
if (sizeof(void*) == 8) cout << "Compiling 64-bits" << endl;
else cout << "Compiling 32-bits" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个程序,使用C++在Windows上检索当前用户的用户名.
我试过这个:
char *userName = getenv("LOGNAME");
stringstream ss;
string userNameString;
ss << userName;
ss >> userNameString;
cout << "Username: " << userNameString << endl;
Run Code Online (Sandbox Code Playgroud)
除"用户名:"外没有输出任何内容.
获取当前用户名的最简单,最好的方法是什么?
因此,无论我做什么,我似乎都无法避免由于我在同一项目中的多个源代码文件中包含相同的头文件而使Dev C++发出大量多重定义错误.我非常希望避免将我的所有源代码转储到一个文件中,并且只包含一次标题,因为这将使我的文件很长并且难以管理.
从本质上讲,这是正在发生的事情:
#ifndef _myheader_h
#define _myheader_h
typedef struct MYSTRUCT{
int blah;
int blah2; } MYSTRUCT;
MYSTRUCT Job_Grunt;
MYSTRUCT *Grunt = &Job_Grunt;
MYSTRUCT Job_Uruk;
MYSTRUCT *Uruk = &Job_Grunt;
int Other_data[100];
void load_jobs();
#endif
Run Code Online (Sandbox Code Playgroud)
示例Cpp文件(它们几乎都看起来像这样):
#include "myheader.h"
void load_jobs(){
Grunt->blah = 1;
Grunt->blah2 = 14;
Uruk->blah = 2;
Uruk->blah2 = 15;
return; }
Run Code Online (Sandbox Code Playgroud)
请记住,我有大约5个包含这个标题的cpp文件,每个文件都处理头文件中找到的不同类型的结构.在这个例子中,当实际头文件中有大约4-6个不同的结构,并且有更多的成员时,只有一个结构包含几个成员.我在其中包含的所有文件都遵循您在此示例中看到的相同公式.
现在我明白了标头防护只能阻止每个单独的cpp文件多次包含头文件.似乎正在发生的事情是,当编译器在每个cpp的开头读取include时,它会再次定义头文件,这会导致它吐出以下行和行:
Multiple Definition of Uruk, first defined here
Multiple Definition of Job_Uruk, first defined here
Multiple Definition of Grunt, first defined here
Multiple Definition of Job_Grunt, first …Run Code Online (Sandbox Code Playgroud) 我是C编程类的教师助手,教师使用Dev C++作为该类的编译器.我个人会使用另一个,但选择不是我的.最近我在Dreamspark上安装了Windows 8 Professional 64位,虽然我的大学也是如此,所以我可以从一些地铁应用程序开发开始进行一些比赛.不幸的是,Dev C++已停止编译.它以前在Windows 7 64位上运行良好.
编译报告时我收到错误:
Compiler: Default compiler
Executing gcc.exe...
gcc.exe "C:\Users\James\Documents\Homework\TA_CPRE_185\counter.c" -o "C:\Users\James\Documents\Homework\TA_CPRE_185\counter.exe" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
gcc.exe: Internal error: Aborted (program collect2)
Please submit a full bug report.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
Execution terminated
Compilation successful
Run Code Online (Sandbox Code Playgroud)
它说编译成功但不是,因此没有可执行文件.我想知道是否有人对什么可能让Dev C++在这个版本的Windows上运行有任何想法,所以我不必在虚拟机中运行Dev C++?我需要它工作,所以我可以做课堂演示.
如何在Windows上以C或C++的所有像素[h*w]读取24位BMP图像的颜色值[更好,没有任何第三方库].我得到了Dev-C++
一个工作代码将非常受欢迎,因为我从未参与过图像阅读,并且在谷歌搜索后来到了SO [如果你能比我更好,请提供链接].
根据FastMM4,我正在研究的Delphi程序正在泄漏很多字符串.确切地说,AnsiStrings:

应用程序(http://sourceforge.net/projects/orwelldevcpp/)曾经泄漏了更多其他数据类型,但FastMM4可以报告实例的创建位置,因此我设法解决了这个问题.奇怪的是,FastMM4根本不报告这些泄漏的位置.
编辑:它似乎确实存在,看到修复的答案.无论如何,问题仍然存在:我在世界上如何泄漏这些东西?
所以,嗯,不幸的是,我不知道该寻找什么.我的意思是,如果这些东西超出范围,它们应该自动释放(即使它们在堆上)?
我确实设法通过随机评论跟踪一些泄漏事件并查看计数会发生什么.这是一个例子:
// simply passing it a constant creates a leak...
MainForm.UpdateSplash('Creating extra dialogs...');
procedure TMainForm.UpdateSplash(const text : AnsiString);
begin
if not devData.NoSplashScreen then // even if this branch is NOT taken
SplashForm.Statusbar.SimpleText := 'blablabla' + text;
end;
// And even if the function call itself is placed within a NOT taken branch!
Run Code Online (Sandbox Code Playgroud)
这是泄漏的另一个例子:
// Passing this constants produces leaks...
procedure TCodeInsList.AddItemByValues(const a, b, c: AnsiString;...);
var
assembleditem : PCodeIns;
begin
new(assembleditem);
assembleditem^.Caption:=a;
assembleditem^.Line:=b;
assembleditem^.Desc:=c; …Run Code Online (Sandbox Code Playgroud)