[解決済み] C++の定義済み関数への未定義参照
2022-03-04 19:11:10
質問
なぜこれがうまくいかないのかがわかりません。 私のファイルを3つとも置いておきますので、どなたかこのエラーを投げる理由を教えてください。 プログラムをコンパイルするのに、g++を使用しています。
プログラム
#include <iostream>
#include "h8.h"
using namespace std;
int main()
{
char sentence[MAX_SENTENCE_LENGTH];
char writeTo[] = "output.txt";
int distanceTo,likePosition, length, numWords;
cout << "ENTER A SENTENCE! ";
cin.getline(sentence, 299);
length = strlen(sentence);
numWords = wordCount(sentence, length);
for(int x = 0; x < 3; ++x)
{
likePosition = likePos(numWords);
distanceTo = lengthTo(sentence, likePosition, length);
insertLike(sentence, distanceTo, length, writeTo);
}
return 0;
}
関数ファイルです。
void insertLike(const char sentence[], const int lengthTo, const int length, char writeTo[])
{
char part1[MAX_SENTENCE_LENGTH], part2[MAX_SENTENCE_LENGTH];
char like[] = " like ";
for(int y = 0; y < lengthTo; ++y)
part1[y] = sentence[y];
for(int z = lengthTo+1; z < length - lengthTo; ++z)
part2[z] = sentence[z];
strcat(part1, like);
strcat(part1, part2);
writeToFile(sentence, writeTo);
return;
}
ヘッダーファイルです。
void insertLike(const char sentence[], const int lengthTo, const int length, const char writeTo[]);
正確にはエラーです。
undefined reference to 'insertLike(char const*, int, int, char const*)'
collect2: ld returned 1 exit status
解決方法は?
の宣言と定義は
insertLike
は異なる
ヘッダーファイルで
void insertLike(const char sentence[], const int lengthTo, const int length,
const char writeTo[]
);
ファンクションファイル」の中に
void insertLike(const char sentence[], const int lengthTo, const int length,
char writeTo[]
);
C++では、関数のオーバーロードが認められており、異なる引数を持つ限り、同じ名前の関数/メソッドを複数個持つことができます。引数の型は関数のシグネチャの一部となります。
この場合
insertLike
を取る
const char*
を第4パラメータとし
insertLike
を取るもので
char *
を4番目のパラメータとして使用します。
異なる関数
.
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] g++ typeinfoへの未定義の参照
-
[解決済み] 未定義の動作とシーケンスポイント
-
[解決済み] 未定義、未指定、および実装で定義された動作
-
[解決済み】vtableへの未定義の参照
-
[解決済み】静的クラスメンバへの未定義参照
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】G++を使用して複数の.cppと.hファイルをコンパイルする場合