1

我有我的主要 C++ 类main.cpp...

#include "fs.h"

int main(void)
{
    return minit();
}

fs.h:_

#ifndef __FS__
#define __FS__
int minit (void);
#endif

和一个fs.o(使用 minit() 进入)文件,它已经是一个目标文件,编译时g++不使用 -g。

这是我的生成文件:

myfs:   main.o fs.o
    g++ -o myfs   -m32 -Wall fs.o main.o
main.o: main.cpp fs.h
    g++ -o  main.o -m32 main.cpp

每次我尝试链接所有内容时,链接器都会说存在对它可能是什么main.cpp的未定义引用?minit();

4

2 回答 2

0

您应该将它指向编译器,该函数是在其他地方定义的。尝试更改此声明:

int minit (void);

对此

extern int minit (void);
于 2013-02-15T10:38:18.697 回答
0

您在实际实现中定义了一个名为 minit() 的函数 - 这就是您遇到此问题的原因。

您需要实际编写函数 minit():

int minit(void) { 返回 0; }

例如...

于 2013-02-12T17:09:59.880 回答