使用 gcc 编译 c/c++ 程序 [关闭]
Posted
技术标签:
【中文标题】使用 gcc 编译 c/c++ 程序 [关闭]【英文标题】:Compile c/c++ program using gcc [closed] 【发布时间】:2014-10-23 13:28:17 【问题描述】:我正在合并两个复杂的程序,一个用 c 编写,另一个用 c++ 编写。
这是一个简化的情况。
我的主程序是用 c (main.c) 编写的。
#include <stdio.h>
#include "test.h"
int main()
printf("test!\n");
其中test.h是test.cpp的头文件,是别人用cpp写的另一个程序。
测试.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 新手,谁能帮忙解决这个问题? 非常感谢。
【问题讨论】:
<vecotr>
应该是<vector>
...
你用的是g++还是gcc?
gcc main.c -o main.exe
如果你在 windows 上使用 gcc g++ main.c -o main.exe
如果你在 windows 上使用 g++
在哪个操作系统上?使用哪些命令?
测试应该被标记为extern "C"
【参考方案1】:
您应该使用g++
编译,而不是gcc
,因为它是C 编译器,而<vector>
是C++ 头文件(更不用说<vecotr>
这是一个错字)
如果必须使用 C 编译器,则必须从 C 源代码中包含的头文件中删除所有 C++ 依赖项。
【讨论】:
【参考方案2】:That's a typo:替换
#include <vecotr>
^^^
与
#include <vector>
编辑:另外,您应该使用 g++
编译,而不是 gcc
,因为您包含 C++ 头文件。
【讨论】:
以上是关于使用 gcc 编译 c/c++ 程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章