我正在合并两个复杂的程序,一个用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的新手,有谁可以帮忙解决这个问题? 非常感谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
您应该使用g++
进行编译,而不是使用gcc
进行编译,因为它的C编译器和<vector>
是C ++头文件(不提及<vecotr>
这是一个错字)
如果必须使用C编译器,则必须从C源代码中包含的头文件中删除所有C ++依赖项。