最初にあるプログラムを作っていたのですが、その祭sqrtでエラーが出てしまったので、別にsqrtを使う短いプログラムを作りました。それが以下のものになります。(test3.c)
「
#include<stdio.h>
#include<math.h>
int main(void){
int atai;
double x=2.0;
atai=(int)sqrt(x);
printf("atai is %c",atai);
}
」
sqrtが動作するか確かめる為のものです。このプログラム(test3.c)で以下のエラーが出てしまいました。
「
/tmp/ccqEejZ1.o(.text+0x4d): In function `main':
test3.c: undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました
」
ちなみにLinux(Fedora core 4)を使用しています。
初心者ということもありなぜエラーが出るのか分かりません。
ちなみに<math.h>を使用しないプログラムは普通に動作します。
解決方法をご存知の方がいらっしゃいましたらご教授下さいませ。
よろしくお願いします。
No.3
- 回答日時:
> collect2: ld はステータス 1 で終了しました
このメッセージから、問題点はコンパイル(リンク)時のコマンドの与え方にあることがわかります。
ccでコンパイルしてるなら-lmを直接指定、makeを使ってるならLDFLAGSに-lmを追加ですね。
できれば、ソースだけでなくコンパイル時のコマンドラインも示していただけると具体的なアドバイスがしやすい。
makefileを使ってるならmakefileも。
No.2
- 回答日時:
printfやgetcharのようなどのプログラムでも使われるような標準的な関数は何も指定しなくていいのですが、算術関数は、どのプログラムでも使うわけじゃないし、関数サイズが大きいため、libmという別ファイルに入ってます。
コンパイルの次のリンクという作業で、sqrt() や sin()等のサブルーチンが入っているlibmから取ってくるために、cc コマンドに -lm (linkの時にlibmも探しなさい)というオプションをつける必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
math.hに含まれる関数が使えない
C言語・C++・C#
-
<math.h>ヘッダを入力しているのに、sqrt関数が使えません
C言語・C++・C#
-
C言語のプログラムで#include<math.h>を使わず#include<stdio.h>だけで
C言語・C++・C#
-
-
4
関数から配列を返すには?
C言語・C++・C#
-
5
e^(x^2)の積分に関して
数学
-
6
どうしてもできない!!
その他(プログラミング・Web制作)
-
7
C言語初心者の質問失礼します。
C言語・C++・C#
-
8
エラーの意味は? Lvalue required
C言語・C++・C#
-
9
C言語 exitの使い方
C言語・C++・C#
-
10
e^-2xの積分
数学
-
11
(int *)の意味
C言語・C++・C#
-
12
python エラー
その他(プログラミング・Web制作)
-
13
先頭アドレスとは何ですか?
C言語・C++・C#
-
14
偏微分の記号∂の読み方について教えてください。
数学
-
15
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
16
C言語のポインターに関する警告
C言語・C++・C#
-
17
C言語で直角三角形の斜辺を求めるプログラムについて
C言語・C++・C#
-
18
C言語のfor文です。 繰り返しの中で文字を一つずつ増やしていくやり方を教えてください for(i=
C言語・C++・C#
-
19
電磁気学での質問です。 電荷のない空間ではポテンシャルの極大点, 極小点が存在しないことを証明せよ.
物理学
-
20
3行3列の行列の和と積の計算方法を教えて下さい。
数学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
C言語でヘッダファイルにグロー...
-
<math.h>があるのにsqrtが・...
-
クリティカルエラー Expressio...
-
1 つ以上の複数回定義されてい...
-
エクセルVBAではRound...
-
C++ ini 書き込みについて
-
「fatal error C1189」を回避す...
-
outportb関数について
-
セミコロンについて
-
[c++] <pthread.h>がinclude で...
-
コンパイルエラー:ユーザ定義...
-
Microsoft の Visual C++ サン...
-
sys/types.hの必要性について
-
C++コンパイル時に『 C1083: in...
-
cygwin でstackdump
-
fortran:includeできないとエラ...
-
CとC++、どちらでコンパイ...
-
ビルドとリビルドの違いを教え...
-
cmakeは何をするのですか? cma...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
<math.h>があるのにsqrtが・...
-
Makefile作成時の拡張子.oとは?
-
C言語でヘッダファイルにグロー...
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
「fatal error C1189」を回避す...
-
ILSpyで、デコンパイルできない。
-
” OS ビルド ” の意味が分か...
-
外部シンボル "_main"は未解決です
-
セミコロンについて
-
C++コンパイル時に『 C1083: in...
-
マクロ コンパイルがグレーバック
-
[c++] <pthread.h>がinclude で...
-
コンパイルエラー:ユーザ定義...
-
ビルドとリビルドの違いを教え...
-
クリティカルエラー Expressio...
-
sys/types.hの必要性について
-
【VC++6.0(MFC)】警告「LINK : ...
-
PRO*C コンパイルエラー
おすすめ情報