使用 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 新手,谁能帮忙解决这个问题? 非常感谢。

【问题讨论】:

&lt;vecotr&gt; 应该是&lt;vector&gt; ... 你用的是g++还是gcc? gcc main.c -o main.exe 如果你在 windows 上使用 gcc g++ main.c -o main.exe 如果你在 windows 上使用 g++ 在哪个操作系统上?使用哪些命令? 测试应该被标记为extern "C" 【参考方案1】:

您应该使用g++ 编译,而不是gcc,因为它是C 编译器,而&lt;vector&gt; 是C++ 头文件(更不用说&lt;vecotr&gt; 这是一个错字)

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

【讨论】:

【参考方案2】:

That's a typo:替换

#include <vecotr>
            ^^^

#include <vector>

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

【讨论】:

以上是关于使用 gcc 编译 c/c++ 程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

gcc和g++的区别解析

gcc命令

vs怎么使用是gcc代码怎么写?

gcc常用命令

gcc编译器究竟怎么打开?我竟然在gcc的安装文件夹中找不到gcc的打开文件?

第01课:调试信息与调试原理