使用gcc编译c / c ++程序

时间:2014-10-23 13:28:18

标签: c++ c gcc

我正在合并两个复杂的程序,一个用c编写,另一个用c ++编写。

这是一个简化的情况。

我的主程序是用c(main.c)编写的。

#include <stdio.h>
#include "test.h"

int main()
{
    printf("test!\n");
}

其中test.h是test.cpp的标题,这是其他人在cpp。

中编写的另一个程序

test.h

#include <vector>

int test();

TEST.CPP

#include "test.h"

int test()
{
    return 1;
}

我尝试使用以下命令编译main.c: gcc -c main.c -o main.o -lstdc ++

但是我收到以下错误: 致命错误:没有这样的文件或目录#include

我不想更改main.c或test.cpp的代码,因为它们比这个简化示例中的代码复杂得多。

我是gcc的新手,有谁可以帮忙解决这个问题? 非常感谢。

2 个答案:

答案 0 :(得分:0)

That's a typo:替换

#include <vecotr>
            ^^^

#include <vector>

编辑:此外,您应该使用g++进行编译,而不是gcc,因为您要包含C ++头文件。

答案 1 :(得分:0)

您应该使用g++进行编译,而不是使用gcc进行编译,因为它的C编译器和<vector>是C ++头文件(不提及<vecotr>这是一个错字)

如果必须使用C编译器,则必须从C源代码中包含的头文件中删除所有C ++依赖项。