[KeTCindy 00344] Re: gccの利用

Atsushi Yano yano @ libe.nara-k.ac.jp
2019年 1月 23日 (水) 14:17:45 JST


高遠先生

ともにエラーが出てしまいました:

gcc -lm test.c -o main.out

/usr/bin/ld: /tmp/ccO8eN32.o: in function `surffun':
test.c:(.text+0x2f): undefined reference to `cos'
/usr/bin/ld: test.c:(.text+0x46): undefined reference to `sin'
/usr/bin/ld: test.c:(.text+0x61): undefined reference to `cos'
/usr/bin/ld: test.c:(.text+0x73): undefined reference to `pow'
/usr/bin/ld: test.c:(.text+0x82): undefined reference to `sin'
/usr/bin/ld: test.c:(.text+0x94): undefined reference to `pow'
collect2: error: ld returned 1 exit status


gcc -lm test2.c -o main.out

/usr/bin/ld: /tmp/ccYuQXSn.o: in function `surffun':
test2.c:(.text+0x2d): undefined reference to `cos'
/usr/bin/ld: test2.c:(.text+0x44): undefined reference to `sin'
/usr/bin/ld: test2.c:(.text+0x5f): undefined reference to `cos'
/usr/bin/ld: test2.c:(.text+0x71): undefined reference to `pow'
/usr/bin/ld: test2.c:(.text+0x80): undefined reference to `sin'
/usr/bin/ld: test2.c:(.text+0x92): undefined reference to `pow'
collect2: error: ld returned 1 exit status



2019年1月23日(水) 13:59 Setsuo Takato <takato @ phar.toho-u.ac.jp>:

> 高遠です.
>
> 動作確認をありがとうございます.
> おかげさまで,sprintfについて修正方法が見つかりました.
> もう1つの関数定義について,
> お手数ですが,添付のtest.cとtest2.cを試していただけますか.
> test.cはswitch文,test2.cはifで場合分けしています.
>   cd (path);
>   gcc -lm test.c (test2.c) -o main.out
>   ./main.out
> でお願いします.
>
>
> 2019/01/23 13:09、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>
> 度々すみません、言葉足らずでした。
>
> lmオプションを付けても、付けなくても実行時にエラーは出ず、
> ./main.outは
> wire3d1
> 0.479426
> を返してくれます。
>
> 矢野 充志
>
>
> 2019年1月23日(水) 13:02 Atsushi Yano <yano @ libe.nara-k.ac.jp>:
>
>> 高遠先生
>>
>> 返信ありがとうございます。
>> 実行すると、何もエラーが出ませんでした。
>>
>> 矢野 充志
>>
>> 2019年1月23日(水) 8:59 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>
>>> 高遠です.
>>>
>>> やはり,この辺ですね.
>>>
>>> test.cを少し修正しました.
>>> こちらでもう一度試して下さい.
>>>
>>> #include <stdio.h>
>>> #include <math.h>
>>> #include <stdlib.h>
>>> #include <string.h>
>>> int main(void){
>>>   char varall[20];
>>>   char var[]="wire3d";
>>>   short ch=1;
>>>   sprintf(varall,"%s%d",var,ch);
>>>   printf("%s\n",varall);
>>>   printf("%f\n",sin(0.5));
>>>   return 0;
>>> }
>>>
>>> また,gccの -lm オプションをとって実行してみて下さい.
>>> gcc test.c -o main.out
>>>
>>>
>>>
>>> 2019/01/23 8:42、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>>>
>>> 高遠先生
>>>
>>> 実行した結果が以下になります。
>>>
>>> test.c: In function ‘main’:
>>> test.c:13:20: warning: ‘sprintf’ may write a terminating nul past the
>>> end of the destination [-Wformat-overflow=]
>>>    sprintf(var,"%s%d",var,ch);
>>>                     ^
>>> test.c:13:3: note: ‘sprintf’ output between 2 and 26 bytes into a
>>> destination of size 20
>>>    sprintf(var,"%s%d",var,ch);
>>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>> /usr/bin/ld: /tmp/cceQ4CcD.o: in function `surffun':
>>> test.c:(.text+0x2f): undefined reference to `cos'
>>> /usr/bin/ld: test.c:(.text+0x46): undefined reference to `sin'
>>> /usr/bin/ld: test.c:(.text+0x61): undefined reference to `cos'
>>> /usr/bin/ld: test.c:(.text+0x73): undefined reference to `pow'
>>> /usr/bin/ld: test.c:(.text+0x82): undefined reference to `sin'
>>> /usr/bin/ld: test.c:(.text+0x94): undefined reference to `pow'
>>> collect2: error: ld returned 1 exit status
>>>
>>>
>>> 2019年1月23日(水) 7:58 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>>
>>>> 高遠です.
>>>>
>>>> gccの仕様の違いで,sprintf,数学関数が動いていないようです.
>>>>
>>>> 以下の内容のテスト用のtest.c(添付します)をfigに入れて
>>>> ターミナルで次の2行を実行して下さいますか.
>>>>
>>>> cd  (パス名)
>>>> gcc -lm test.c -o main.out
>>>>
>>>>
>>>> ----------------
>>>> test.c
>>>> ----------------
>>>>
>>>> #include <stdio.h>
>>>> #include <math.h>
>>>> #include <stdlib.h>
>>>> #include <string.h>
>>>> void surffun(short ch,double u, double v, double p[3]){
>>>>   switch(ch){
>>>>     case 1 :
>>>> p[0]=u*cos(v);p[1]=u*sin(v);p[2]=4.0-(pow(u*cos(v),2.0)+pow(u*sin(v),2.0));break;
>>>>   }
>>>> }
>>>> int main(void){
>>>>   char var[20]="wire3d";
>>>>   short ch=1;
>>>>   sprintf(var,"%s%d",var,ch);
>>>>   printf("%s\n",var);
>>>>   return 0;
>>>> }
>>>>
>>>>
>>>> 2019/01/23 7:18、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>>>>
>>>> 高遠先生
>>>>
>>>> おはようございます、矢野です。
>>>> なるほど、gccのところで詰まってるようなのですね。
>>>>
>>>> ターミナルを立ち上げて,kc.shの2行目と3行目を1つずつ実行してくださいますか.
>>>>
>>>> 実行して出てきた結果が先ほど添付したerror.txtになります。
>>>> (出力が長すぎるため、テキストファイルを添付する形にさせてもらっています)
>>>> ご確認の程よろしくお願いいたします。
>>>>
>>>> 矢野 充志
>>>>
>>>>
>>>> 2019年1月23日(水) 7:02 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>>>
>>>>> 高遠です.
>>>>>
>>>>> おはようございます.
>>>>>
>>>>>
>>>>> Setfiles("");
>>>>> Setparent("");
>>>>> の文が入っていたためでした。
>>>>> 見当違いなことを言ってしまいすみません。
>>>>>
>>>>>
>>>>> そうだったのですか.
>>>>> 了解しました.
>>>>>
>>>>>
>>>>> 今回も前回と同じ内容かもしれませんが、標準エラー出力error.txt等、念の為 情報を載せておきます。
>>>>>
>>>>> fig内のファイル一覧:
>>>>> ├── errormessageR.txt
>>>>> ├── kc.sh
>>>>> ├── s0901paraboloid1.c
>>>>> ├── s0901paraboloid1end.txt
>>>>> ├── s0901paraboloid1header.h
>>>>> ├── s0901paraboloidcrvsf1.r
>>>>> ├── s0901paraboloidcrvsf1.txt
>>>>> ├── s0901paraboloidcrvsf1end.txt
>>>>> ├── s0901paraboloidsfbd1.Rdata
>>>>> ├── s0901paraboloidsfbd1.r
>>>>> ├── s0901paraboloidsfbd1.txt
>>>>> └── s0901paraboloidsfbd1end.txt
>>>>>
>>>>>
>>>>> こちらで試したときのfigの中身は
>>>>>
>>>>> s0901paraboloidax3d.dat
>>>>> s0901paraboloid1end.txt
>>>>> s0901paraboloid1.txt
>>>>> main.out
>>>>> kc.command
>>>>> s0901paraboloid1.c
>>>>> s0901paraboloid1header.h
>>>>>
>>>>> です.
>>>>> 比べてみると
>>>>> 1)Rの関連ファイルが混ざっています.
>>>>> errormessageR.txt,s0901paraboloidsfbd1.Rdata,s0901paraboloidsfbd1.r
>>>>>
>>>>> 2)gccが実行されてできるmain.outがありません.
>>>>> 3)main.outが実行されてできるdatファイルがありません
>>>>>
>>>>> また,kc.command (kc.shと同じ)の中身は
>>>>>
>>>>> #!/bin/sh
>>>>> cd "/Users/takatoosetsuo/ketcindy/samples/s09surfaceC/fig"
>>>>> gcc -lm s0901paraboloid1.c -o main.out
>>>>> ./main.out
>>>>> echo ////>s0901paraboloid1end.txt
>>>>> exit 0
>>>>>
>>>>> で,
>>>>>
>>>>>
>>>>> kc.sh
>>>>>
>>>>> #!/bin/sh
>>>>> cd "/home/atsushi/home/cinderella/samples/s09surfaceC/fig"
>>>>> gcc -lm s0901paraboloid1.c -o main.out
>>>>> ./main.out
>>>>> echo ////>s0901paraboloid1end.txt
>>>>> exit 0
>>>>>
>>>>>
>>>>> と同じです.
>>>>> ということは,3行目のgccが実行されていないようです.
>>>>> (gccのパスか,引数とパラメータの与え方に問題がある可能性があります)
>>>>> ターミナルを立ち上げて,kc.shの2行目と3行目を1つずつ実行して
>>>>> くださいますか.
>>>>>
>>>>>
>>>>> 2019年1月22日(火) 21:52 Atsushi Yano <yano @ libe.nara-k.ac.jp>:
>>>>>
>>>>>> 高遠先生
>>>>>>
>>>>>>
>>>>>> s0901paraboloid.cdyを(ExeccmdC("1");をコメントアウトした状態の初期の状態で)実行したときに出力されたファイルは以下の通りです:
>>>>>>
>>>>>> ├── crvsf1.r
>>>>>> ├── crvsf1.txt
>>>>>> ├── crvsf1end.txt
>>>>>> ├── errormessageR.txt
>>>>>> ├── kc.sh
>>>>>> ├── sfbd1.Rdata
>>>>>> ├── sfbd1.r
>>>>>> ├── sfbd1.txt
>>>>>> └── sfbd1end.txt
>>>>>>
>>>>>> kc.shは
>>>>>>
>>>>>> #!/bin/sh
>>>>>> cd "/home/atsushi/home/cinderella/samples/s09surfaceC/fig"
>>>>>> R  --vanilla --slave < crvsf1.r 2> errormessageR.txt
>>>>>> exit 0
>>>>>>
>>>>>> となりました。
>>>>>> ExeccmdC("1");をアンコメントすると、1.cなどが出てくるようです。
>>>>>>
>>>>>> 矢野 充志
>>>>>>
>>>>>>
>>>>>> 2019年1月22日(火) 19:52 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>>>>>
>>>>>>> 高遠です.
>>>>>>>
>>>>>>> ご報告をありがとうございます.
>>>>>>> おかげさまで,別のバグが見つかりました.
>>>>>>> これについては,これから直します.
>>>>>>>
>>>>>>> まずは,
>>>>>>> s0901paraboloid.cdy
>>>>>>> を実行してみて下さい.
>>>>>>>
>>>>>>> Macの場合,figには,
>>>>>>> s0901paraboloid1end.txt
>>>>>>> s0901paraboloid1.txt
>>>>>>> main.out
>>>>>>> kc.command
>>>>>>> s0901paraboloid1.c
>>>>>>> s0901paraboloid1header.h
>>>>>>> s0901paraboloidax3d.dat
>>>>>>> ができます.kc.commandはkc.sh <http://kc.xn--commandkc-hg4h.sh/>と同じです.
>>>>>>>
>>>>>>> 送っていただいた一覧で
>>>>>>> 単に 1.c, … となっているのが変です.
>>>>>>> 上のs0901paraboloid.cdyを試していただけますか.
>>>>>>>
>>>>>>>
>>>>>>> 2019/01/22 19:17、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>>>>>>>
>>>>>>> 高遠先生
>>>>>>>
>>>>>>> 丁寧なご回答ありがとうございます。
>>>>>>>
>>>>>>> サンプルファイルのs09surfaceC/s0901paraboloid.cdyを実行しました。
>>>>>>> (ExeccmdC("1");はアンコメントしています)
>>>>>>>
>>>>>>> 1)figフォルダの中に,Windowsと同様なファイルができているか.
>>>>>>>
>>>>>>> Windowsとほぼ同様だと思います。空のerrormessageR.txtがいつもできるくらいです。
>>>>>>> 以下が出力されたファイルの一覧です:
>>>>>>> ├── 1.c
>>>>>>> ├── 1end.txt
>>>>>>> ├── 1header.h
>>>>>>> ├── crvsf1.r
>>>>>>> ├── crvsf1.txt
>>>>>>> ├── crvsf1end.txt
>>>>>>> ├── errormessageR.txt
>>>>>>> ├── kc.sh
>>>>>>> ├── sfbd1.Rdata
>>>>>>> ├── sfbd1.r
>>>>>>> ├── sfbd1.txt
>>>>>>> └── sfbd1end.txt
>>>>>>>
>>>>>>> 2)kc.shができているか.
>>>>>>>
>>>>>>> できています。
>>>>>>>
>>>>>>> #!/bin/sh
>>>>>>> cd "/home/atsushi/home/cinderella/samples/s09surfaceC/fig"
>>>>>>> gcc -lm 1.c -o main.out
>>>>>>> ./main.out
>>>>>>> echo ////>1end.txt
>>>>>>> exit 0
>>>>>>>
>>>>>>>
>>>>>>>> 3)kc.shを1行ずつ実行したとき,どこで引っかかるか
>>>>>>>
>>>>>>> gcc -lm 1.c -o main.out とすると、エラーが出ます。
>>>>>>> 標準エラー出力error.txtを添付させていただきます。
>>>>>>>
>>>>>>> 矢野 充志
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2019年1月22日(火) 17:40 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>>>>>>
>>>>>>>> 高遠です.
>>>>>>>>
>>>>>>>> Linuxでの動作確認をありがとうございます.
>>>>>>>> こちらではチェックできないので助かります.
>>>>>>>>
>>>>>>>> 1)figフォルダの中に,Windowsと同様なファイルができているか.
>>>>>>>> 2)kc.shができているか.
>>>>>>>> 3)kc.shを1行ずつ実行したとき,どこで引っかかるか
>>>>>>>>
>>>>>>>> を調べていただけますか.
>>>>>>>> よろしくお願いします.
>>>>>>>>
>>>>>>>>
>>>>>>>> 2019/01/22 16:42、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>>>>>>>>
>>>>>>>> 高遠先生
>>>>>>>>
>>>>>>>> 早速のご返信ありがとうございます。
>>>>>>>> アンコメントしたのですが、うまく行きません。
>>>>>>>> パスも問題ないと思います。
>>>>>>>>
>>>>>>>> Windows・MinGWで試してみたのですが、速いですね!
>>>>>>>> Scilab(Ketpic)のときは考えられませんでした。
>>>>>>>>
>>>>>>>> 矢野 充志
>>>>>>>>
>>>>>>>>
>>>>>>>> 2019年1月22日(火) 14:03 Setsuo Takato <takato @ phar.toho-u.ac.jp>:
>>>>>>>>
>>>>>>>>> 高遠です.
>>>>>>>>>
>>>>>>>>> お試しいただいてありがとうございます.
>>>>>>>>> gccを利用しているサンプルは,s09surfaceCです.
>>>>>>>>> ExeccmdCをコメントアウトしていますが,
>>>>>>>>> gccがインストール済の場合は,アンコメントしてください.
>>>>>>>>> また,必要な場合は,gccのパスを確認してください.
>>>>>>>>>
>>>>>>>>> 2019/01/22 13:54、Atsushi Yano <yano @ libe.nara-k.ac.jp>のメール:
>>>>>>>>>
>>>>>>>>> たびたび失礼します、奈良高専の矢野充志と申します。
>>>>>>>>>
>>>>>>>>> 空間図形も扱いたく、サンプルのs0901paraboloid.cdyなども動かしてみたのですが、
>>>>>>>>> おそらくgccは利用されていなくて、Rのみを使って計算しているようなのですが、
>>>>>>>>> gccを利用するための設定はあるのでしょうか?
>>>>>>>>> 描画はされるのですが、計算に時間がずいぶんとかかっている状態です。
>>>>>>>>> また、Startsurf()は現在は使われていない関数なのでしょうか?
>>>>>>>>>
>>>>>>>>> 環境はUbuntu18.10、KeTCindyのバージョンは20181225.0(GitHub)、
>>>>>>>>> gccのバージョンは8.2.0です。
>>>>>>>>>
>>>>>>>>> 矢野 充志
>>>>>>>>> _______________________________________________
>>>>>>>>> Ketcindy mailing list
>>>>>>>>> Ketcindy @ ketpic.com
>>>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *******************************************
>>>>>>>>>    高遠 節夫(たかとおせつお)
>>>>>>>>>        東邦大学理学部(訪問教授)
>>>>>>>>>        KETpic開発センター
>>>>>>>>>        DL : CTAN > ketcindy
>>>>>>>>>        ML : ketpic.com > Link List
>>>>>>>>> ============================
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Ketcindy mailing list
>>>>>>>>> Ketcindy @ ketpic.com
>>>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Ketcindy mailing list
>>>>>>>> Ketcindy @ ketpic.com
>>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>>
>>>>>>>>
>>>>>>>> *******************************************
>>>>>>>>    高遠 節夫(たかとおせつお)
>>>>>>>>        東邦大学理学部(訪問教授)
>>>>>>>>        KETpic開発センター
>>>>>>>>        DL : CTAN > ketcindy
>>>>>>>>        ML : ketpic.com > Link List
>>>>>>>> ============================
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Ketcindy mailing list
>>>>>>>> Ketcindy @ ketpic.com
>>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>>
>>>>>>> <error.txt>_______________________________________________
>>>>>>> Ketcindy mailing list
>>>>>>> Ketcindy @ ketpic.com
>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>
>>>>>>>
>>>>>>> *******************************************
>>>>>>>    高遠 節夫(たかとおせつお)
>>>>>>>        東邦大学理学部(訪問教授)
>>>>>>>        KETpic開発センター
>>>>>>>        DL : CTAN > ketcindy
>>>>>>>        ML : ketpic.com > Link List
>>>>>>> ============================
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Ketcindy mailing list
>>>>>>> Ketcindy @ ketpic.com
>>>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>>>
>>>>>> <error.txt>_______________________________________________
>>>>> Ketcindy mailing list
>>>>> Ketcindy @ ketpic.com
>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>
>>>>>
>>>>> *******************************************
>>>>>    高遠 節夫(たかとおせつお)
>>>>>        東邦大学理学部(訪問教授)
>>>>>        KETpic開発センター
>>>>>        DL : CTAN > ketcindy
>>>>>        ML : ketpic.com > Link List
>>>>> ============================
>>>>>
>>>>> _______________________________________________
>>>>> Ketcindy mailing list
>>>>> Ketcindy @ ketpic.com
>>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>>
>>>> _______________________________________________
>>>> Ketcindy mailing list
>>>> Ketcindy @ ketpic.com
>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>
>>>>
>>>> *******************************************
>>>>    高遠 節夫(たかとおせつお)
>>>>        東邦大学理学部(訪問教授)
>>>>        KETpic開発センター
>>>>        DL : CTAN > ketcindy
>>>>        ML : ketpic.com > Link List
>>>> ============================
>>>>
>>>> _______________________________________________
>>>> Ketcindy mailing list
>>>> Ketcindy @ ketpic.com
>>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>>
>>> _______________________________________________
>>> Ketcindy mailing list
>>> Ketcindy @ ketpic.com
>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>
>>>
>>> *******************************************
>>>    高遠 節夫(たかとおせつお)
>>>        東邦大学理学部(訪問教授)
>>>        KETpic開発センター
>>>        DL : CTAN > ketcindy
>>>        ML : ketpic.com > Link List
>>> ============================
>>>
>>> _______________________________________________
>>> Ketcindy mailing list
>>> Ketcindy @ ketpic.com
>>> http://lists.ketpic.com/mailman/listinfo/ketcindy
>>>
>> _______________________________________________
> Ketcindy mailing list
> Ketcindy @ ketpic.com
> http://lists.ketpic.com/mailman/listinfo/ketcindy
>
>
> *******************************************
>    高遠 節夫(たかとおせつお)
>        東邦大学理学部(訪問教授)
>        KETpic開発センター
>        DL : CTAN > ketcindy
>        ML : ketpic.com > Link List
> ============================
>
> _______________________________________________
> Ketcindy mailing list
> Ketcindy @ ketpic.com
> http://lists.ketpic.com/mailman/listinfo/ketcindy
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: http://lists.ketpic.com/pipermail/ketcindy/attachments/20190123/1e919309/attachment-0001.html 


Ketcindy メーリングリストの案内