2016-11-07 9 views
-3

1つの関数で単純なライブラリを作成しようとしましたので、作成する方法を読みましたが、機能しません。このような簡単なライブラリに説明が見つかりません。どうすればいいですか?ライブラリへの参照が未定義のエラー

main.cの

#include <stdio.h> 
#include "hello.h" 

int main() 
{ 
    hello(); 
    return 0; 
} 

のhello.c

#include <stdio.h> 
#include "hello.h" 

void hello(void) 
{ 
    printf("Hello user 4"); 
} 

hello.h

void hello(void); 
+0

開発環境は何ですか? –

+0

リンクするファイルが複数あることをリンカーに伝えましたか? –

+0

これは 'C++'か 'c'ですか?私は 'C++ 'とタグ付けされていますが、コードは' c'です。 – drescherjm

答えて

1

あなたcソースコードファイルのすべて1つのプロジェクトの一部として一緒にコンパイルする必要があります。 'hello.c'を作成したとき(おそらくFile→New→Empty Fileを選択すると)、CodeBlocksはファイルをアクティブなプロジェクトに追加するよう促すメッセージを表示し、 "Yes"ボタンをクリックして確認する必要があります。その後、「ファイルを保存」ダイアログボックスが表示され、通常通りにファイルを保存し、コードを編集して追加し、いつものようにプロジェクトをコンパイルするとうまくいくはずです。

しかし、あなたはすでにhello.cファイルを作成しましたので、あなただけのプロジェクトに既存のhello.cファイルを追加するコードブロックを指示する必要があります:→hello.cを選択→ファイルを追加

右クリックし、[プロジェクト名OKをクリックします。

プロジェクトを再コンパイルすると、コンパイラは関連する.cソースファイルをリンクする必要があります。

また、main.cのヘッダーの一覧に#include "hello.c"を追加しても同様の結果が得られます。しかし、コンパイラへのリンク処理を残す必要があるので、これはお勧めできません。

関連する問題