3

「親愛なる」コードに問題があると思います。コードブロックを使用していますが、コンパイルしようとすると、コンパイラは次のエラーを表示します:「ld が 1 終了ステータスを返しました」

main.c

#include <stdio.h>
#include <stdlib.h>
#include "C:\Users\alexl_000\Desktop\fibmodnopoin\fib.h"

int main(){
    int position;
    int *fib_ptr,fib=2;
    char confirm='y';
    fib_ptr = &fib;

printf("find Fibonacci's number by it's position \n");

while(confirm=='y'){
    printf("insert position:");
    scanf("%d", &position);
    printf("%d \n",position);
    fib=fibonacci(position);
    printf("%d \n", *fib_ptr);
    printf("find new number?");
    scanf("%s", &confirm);
}
return 0;
}

fib.h

#ifndef FIB_H_INCLUDED
#define FIB_H_INCLUDED
#endif // FIB_H_INCLUDED

int fibonacci(int );

fib.c

#include <stdio.h>
#include <stdlib.h>


int fibonacci(int position){

    int fib1=1, fib2=1, count=3, fib;

    if (posizione==0)
      fib=0;

    else if (position==1||2 )
      fib=1;

    if (position>2){
      while(count <=  position){
         count++;
         fib=fib1+fib2;
         fib2=fib1;
         fib1=fib;
        }
    }
    return fib ;
}

コンパイラ

||=== Build: Debug in fibmodnopoin (compiler: GNU GCC Compiler) ===|
||error: ld returned 1 exit status|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

「デバッグ」および「リリース」ボックスがチェックされていないためにリンクの問題が発生する前

reference not defined to "fibonacci"

しかし、私はそれを解決します:右クリックしてfib.cor\and fib.h、プロパティ - >ビルド

最初の問題を解決する方法が本当に見つかりません...

ご清聴ありがとうございました

4

3 に答える 3

2

リンカーエラーです。関数の宣言 (プロトタイプ) をメイン プログラムに提供しましたが、定義が提供されていません。ファイルをコンパイルし、オブジェクト ファイルをリンカ (ld) に提供する必要があります。Linux では、次のようにまとめてコンパイルします。

gcc main.c fib.c -o fib

于 2016-03-16T13:31:05.807 に答える