長いタイトルになってしまいすみません。
私は、Visual C++.NETを使用して、C言語プログラミングをしています。あるサンプルプログラムを参考にしながら改良を図っているのですが、以下に示すプログラムを追加したところ、タイトルに示しましたエラーが表示されて困っています。
//長くなり見づらいため、問題の箇所のみ記します。
void main(int argc, char** argv){
}
void *sender(void* context){
for(i=0;i<10;i++){
print_identity()
print_identity()
}
}
for文の中に、print_identity関数を追加したところ、
エラーが発生しました。
[エラー内容]
1. sample error LNK2019: 未解決の外部シンボル _print_identity が関数 _senderで参照されました。
2. sample fatal error LNK1120: 外部参照 1 が未解決です。
関数の定義がしていないと言うことでしょうか?実際に、定義してみたりしました(定義する場所が違うのかもしれません)が、解決できませんでした。
よろしくお願いします。
No.3
- 回答日時:
>どういう意味なんでしょうか?
関数の定義そのものなので、
;
の部分には、その関数で行う実際の処理を書き連ねていかないといけません。
void print_identity(void);
の場合は、プロトタイプ宣言で、どこかに実際に処理をともなう関数の定義がなければいけません。
もし、その関数が外部のライブラリに含まれていて、
中身を定義する必要が無くて本来プロトタイプ宣言だけでいいということなら、
#include指定やlibの指定あるいはリンクに含めるファイルのリストを見直しましょう。
ところで
>print_identity関数を追加したところ、
print_identity関数ってなんなんですか?
自作関数ではないのですか?
この回答への補足
print_identity関数は、自作関数です。
以下のfor文の中に、print_identity関数を記述するつもりです。print_identity関数は、引数にunsigned char型の配列を持ちます。
for(i=0;i<10;i++){
print_identity(6バイトのunsigned charの配列)
print_identity(6バイトのunsigned charの配列)
}
No.2
- 回答日時:
(コンパイルではなく)リンクで落ちていますから、print_identity() を含むファイルを一緒に処理するのを忘れている(プロジェクトに該当ファイルが追加されていない)というのが、ありそうだなという気がします。
もちろん、print_identy() の実体がないという可能性もあります。
No.1
- 回答日時:
参照する前に定義がされていないということだと思います。
void print_identity(void){;}
のように定義されているでしょうか
多分、voidが省略されて書かれているのではないですか
この回答への補足
こんばんは。
void print_identity(void){;}を以下のところに追加の様に追加したところコンパイル可能となりました。しかし、実際のところ、定義が出来ただけできちんと動作しているのかわかりませんが・・・
void *send_packet(void* context);
void print_identity(byte* clue){;}
void main(int argc, char** argv){
}
void *sender(void* context){
for(i=0;i<10;i++){
print_identity(6バイトのunsigned charの配列)
print_identity(6バイトのunsigned charの配列)
}
}
ところで、このvoid print_identity(void){;}の{;}は、どういう意味なんでしょうか?中括弧をはずしてセミコロンだけでコンパイルするとエラーが表示されますが、{;}とするとコンパイル成功します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
int main()、void main()、void...
-
【gcc・cygwin】multiple defin...
-
Notepad++の関数リスト表示の変...
-
静的でないメンバ関数の呼び出...
-
多重定義が起きている?--lnk20...
-
C# Controls.Addで動的に配置し...
-
ArduinoでMouse関数を使用して...
-
【VC++6.0】イベントハンドラ関...
-
C++にてtemplateで受け取った任...
-
ウインドウの移動禁止
-
_beginthreadにて発生するコン...
-
VC++でGetKeyboardStateがうま...
-
メッセージマップ(ON_CONTROL_...
-
void main()って誰が最初?:AN...
-
critical error c0000005
-
コールバックって・・・
-
gcc: incompatible pointer type
-
const_castのつかいどころを教...
-
SC_SIZEがわからない
-
既定のコンストラクタがありま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
C# Controls.Addで動的に配置し...
-
int main()、void main()、void...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
void*型の配列について
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
H8マイコンのシリアル通信につ...
-
コールバックって・・・
-
関数ポインタについて
-
void main()って誰が最初?:AN...
おすすめ情報