1

メイン C++ クラスがありmain.cppます...

#include "fs.h"

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

fs.h:_

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

そして、-gなしfs.oでコンパイルされた、すでにオブジェクトファイルである(minit()を使用した)ファイル。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

すべてをリンクしようとするたびに、リンカはWhat could it be?main.cppへの未定義の参照があると言います。minit();

4

2 に答える 2

0

関数が別の場所で定義されていることをコンパイラに示す必要があります。この宣言を変更してみてください:

int minit (void);

これに

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

実際に IMPLEMENTING 内で minit() という関数を定義しました。これが、この問題が発生している理由です。

関数 minit() を実際に記述する必要があります。

int minit(void) { return 0; }

例えば...

于 2013-02-12T17:09:59.880 に答える