构建混合的c / c ++代码

时间:2013-02-22 06:14:13

标签: c++ c

我有.cc个文件,该文件同时使用iostreammalloc。我怎么编译呢?使用g++,它说

 error: 'malloc' was not declared in this scope

使用gcc,它说

 fatal error: iostream: No such file or directory

源代码位于http://sequitur.info/sequitur_simple.cc

更新

我将malloc更改为new并将free更改为delete。我仍然遇到很多错误。例如

 /usr/include/c++/4.6/new:103:14: error:   initializing argument 2 of âvoid* operator new(std::size_t, void*)â [-fpermissive]

3 个答案:

答案 0 :(得分:5)

包括<stdlib.h>或包含<cstdlib>并将malloc更改为std::malloc - 使用g++进行编译。对于新的C ++代码,包含<cstdlib>首选方式,在C ++中不推荐使用“name.h”样式。

虽然这会解决您的问题,但迁移到new / delete 可能是一个更好的主意,以便更加一致地使用C ++。

答案 1 :(得分:0)

您是否尝试过加入

#include <stdio.h>      
#include <stdlib.h>   

并使用g ++?

答案 2 :(得分:0)

在C ++代码中使用new和delete。不要混用new和malloc。从你发布的代码中,没有任何理由AFAIK你不能使用new和delete