首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >collect2: ld返回一个退出状态错误

collect2: ld返回一个退出状态错误
EN

Stack Overflow用户
提问于 2013-02-01 18:16:08
回答 1查看 6.1K关注 0票数 2

我有以下三个文件:

Movie.h

代码语言:javascript
复制
struct Movie{
    char title[30];         // the hour of the current time
    char director[30];          // the minute of the current time
    int length;
} ;

void printMovieInfo(Movie *s);

Movie.cpp

代码语言:javascript
复制
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cmath>

#include "Movie.h"

using namespace std;

void printMovieInfo(Movie *s){

    cout << "Hi";

}

和带有主的文件

代码语言:javascript
复制
#include "Movie.cpp"
using namespace std;

int main()
{
    struct Movie *m;
    printMovieInfo(m);
}

当我运行这个程序时,我会得到以下错误:

代码语言:javascript
复制
    collect2 ld returned 1 exit status

和警告:

代码语言:javascript
复制
/tmp/ccIe4dlt.o In function `printMovieInfo()':
Movie.cpp (.text+0x0): multiple definition of `printMovieInfo()'
/tmp/cc91xrNB.o HelloWorld.cpp:(.text+0x0): first defined here

我只想调用一个函数来打印"Hi",但我不知道为什么会出现这个错误

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 18:19:00

不要使用#include "movie.cpp",你想要#include "movie.h"

包含一个".cpp“文件是非常罕见的--它们被编译成单独的单元,然后由链接器(这里称为collect2)链接到一起。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14652549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档