sqrt(またはその他の数学関数)への未定義の参照
2023-08-26 15:29:44
質問
私はこの簡単なコードを持っています。
max = (int) sqrt (number);
で、ヘッダーには
#include <math.h>
への参照は未定義であると表示されます。
sqrt
. 何か問題があるのでしょうか?それはすべてが大丈夫であるように見えます。
どのように解決するのですか?
あなたが使っているシステムの数学ライブラリとリンクする必要があることに気づくかもしれません、次のような。
gcc -o myprog myprog.c -L/path/to/libs -lm
^^^ - this bit here.
ヘッダを含むことで、コンパイラは関数宣言を知ることができますが、それは ではなく 必ずしもその関数を実行するために必要なコードに自動的にリンクするわけではありません。
そうでない場合は、あなたのコード、コンパイルコマンド、実行中のプラットフォーム (オペレーティングシステム、コンパイラなど) を示す必要があります。
次のコードは、正常にコンパイルおよびリンクされます。
#include <math.h>
int main (void) {
int max = sqrt (9);
return 0;
}
ただ、注意していただきたいのは いくつかの コンパイルシステムは、ライブラリがコマンドラインで与えられた順番に依存します。つまり、ライブラリを順番に処理し、未解決のシンボルを満たすためにのみライブラリを使用する場合があるということです。 を満たすためにのみ使用します。
では、例えば、コマンドが与えられた場合。
gcc -o plugh plugh.o -lxyzzy
gcc -o plugh -lxyzzy plugh.o
と
plugh.o
には何かが必要です。
xyzzy
ライブラリの何かを必要とする場合、2 番目は期待通りに動作しないかもしれません。ライブラリをリストアップした時点では、満たすべき未解決のシンボルは存在しません。
そして、未解決のシンボルが
plugh.o
を実行します。
が現れると、もう手遅れです。
関連
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
C: 1を求める! + 2! + 3! + ... + n! (ループ)
-
警告: 'struct XXX' はパラメータリストの内部で宣言されています。
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] C言語でchar配列をコピーする方法は?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] アセンブリがCより速いのはどんなとき?[クローズド]
-
[解決済み] なぜC言語では構造体を頻繁にtypedefする必要があるのですか?
-
[解決済み] ストラクチャーとユニオンの違い
-
[解決済み] C言語の構造体(CGRectやCGPointなど)をNSLog化することは可能ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 math.hヘッダーをインクルードしているのに、「undefined reference to sqrt」エラーが発生するのはなぜですか?[重複しています。]
-
_CRT_SECURE_NO_WARNINGS エラーメッセージ、解決方法
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
[解決済み] pow' と `floor' への未定義の参照
-
[解決済み] sin` への未定義の参照 [重複].
-
[解決済み] C言語でchar配列をコピーする方法は?
-
[解決済み] C言語で関数型プログラミングを行うためのツールにはどのようなものがありますか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] C言語のi++と++iに性能差はあるのでしょうか?
-
[解決済み】なぜC言語で数学ライブラリをリンクする必要があるのですか?