genedemon 发表于 2006-8-10 21:12:19

ML下面有没有像TurboC++之类的编译器?

如题,最近在学C++
想知道ML下面有没有像TurboC++之类的编译器?
Kdevelop中的C/C++的IDE是不是这样的编译器?
可是我尝试写了个程序
却找不到编译的命令
:roll:

huyongzs 发表于 2006-8-10 21:46:44

编译命令是g++
简单的程序g++ -o programname programname.c

genedemon 发表于 2006-8-11 20:36:41

还不是很明白
是在shell里面输入g++ -o programname programname.c 吗?
是不是我在文本编辑器里面写好了一个脚本然后保存成.c 的扩展名
然后编译呢?
谢谢

windwiny 发表于 2006-8-11 21:01:33

kdevelop 是开发环境,是编译程序的 "外壳",

GNU C 包括c/c++/.... 很多语言的编译器

c 的是 gcc
c++ 的是 g++

关于命令行参数,,那就太多了...

另外还有 tiny c 编译器

huyongzs 发表于 2006-8-11 21:55:48

还不是很明白
是在shell里面输入g++ -o programname programname.c 吗?
是不是我在文本编辑器里面写好了一个脚本然后保存成.c 的扩展名
然后编译呢?
谢谢
比如你写了一个一个C++程序是programname.cpp
cpp是C++源程序的后缀名.用下边的方法编译
g++ -o [要输出的程序名字] programname.cpp

(i.e.) g++ -o programname programname.c

KDE 发表于 2006-8-12 06:49:56

c 、d、c++、类delphy、类vb、java 集成开发环境 linux 下都有,magic2 系统里携带了 kdevelop。

genedemon 发表于 2006-8-13 16:01:30

好像还是有点问题:)
下面是输入的cpp文件,文件名是NONAME00,是我在win下面的Turbo C++3.0写的

# g++ -o NONAME00 NONAME00.CPP
In file included from /usr/lib/gcc/i686-magic-linux/3.4.4/../../../../include/c++/3.4.4/backward/iostream.h:31,
               from NONAME00.CPP:1:
/usr/lib/gcc/i686-magic-linux/3.4.4/../../../../include/c++/3.4.4/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
NONAME00.CPP:7: error: `main' must return `int'

不知道为什么说有错,是不是Linux下的语法和win下面的语法要求不同?
源代码是:

#include <iostream.h>
int max(int a,int b);
int max(int a,int b,int c);
int max(int a,int b,int c,int d);

void main()
{
   cout<<max(2,4)<<endl;
   cout<<max(4,5,6)<<endl;
   cout<<max(2,4,5,6)<<endl;
}
int max(int a,int b)
{
    return a>b?a:b;
}
int max(int a,int b,int c)
{
    int t=max(a,b);
    return max(t,c);
}
int max(int a,int b,int c,int d)
{
    int t1=max(a,b);
    int t2=max(t1,c);
    return max(t2,d);
}
在win下面编译是成功的

heyuqi 发表于 2006-8-13 18:41:13

# g++ -o NONAME00 NONAME00.CPP
In file included from /usr/lib/gcc/i686-magic-linux/3.4.4/../../../../include/c++/3.4.4/backward/iostream.h:31,
               from NONAME00.CPP:1:
/usr/lib/gcc/i686-magic-linux/3.4.4/../../../../include/c++/3.4.4/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
NONAME00.CPP:7: error: `main' must return `int'

注意 warning 和 error 提示的信息

jiangtao9999 发表于 2006-8-13 19:23:43

LZ ,不要被 TC 惯坏。要编写标准的代码。 :twisted:

sejishikong 发表于 2006-8-14 11:10:31

如果是喜欢类TC的,可以考虑rhide。

genedemon 发表于 2006-8-14 20:03:52

Linux下C++的语法和win下有区别
但是好像很多书都是只讲linux下的C
对于C++很少涉及

heyuqi 发表于 2006-8-14 21:22:34

Linux下C++的语法和win下有区别
但是好像很多书都是只讲linux下的C
对于C++很少涉及

不对,在 C++ 的定义中,每个函数除了 void func 都应该有一个返回。而没有特别声明,这个返回值应该是 int

没用过 tc++,如果它这样是可以编译通过的话,那么这只是它的问题了。

还有 warning 提示你用过 标准 c++ 的库,include <iostream> && using namespace std;

这些都是 c++ 的标准,与 linux 无关。

好像一直经典的书都会提到,当然不包括国内的那些垃圾 ...

jiangtao9999 发表于 2006-8-14 21:58:40

TC 可以关闭很多的 error ,比如函数没有返回值,Header 文件不用引用即可使用……

genedemon 发表于 2006-8-14 22:00:50

汗哦
偶用的教材都是以TC作为检验平台的……

KDE 发表于 2006-8-15 02:05:47

微软很多东西都是严重违背标准的,甚至是垃圾。微软这么做只是为了开发人员能够提高速度,这样做容错性好了,却培养了编程人员极坏的编程习惯,而且引入了安全隐患,也为软件的跨平台移植设置了巨大的障碍。希望你看些经典的技术著作,而不是微软的教材。
页: [1] 2 3
查看完整版本: ML下面有没有像TurboC++之类的编译器?