お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2016-06-11 20:48:46

dryas
メンバ
登録日: 2010-11-30

14.04では問題ないのに16.04ではコンパイルエラー

日経LINUX7月号の附録のDVDのUbuntu16.04LTS(インターナショナル/32ビット版)をインストールして、14.04では問題なくコンパイルできる自作のC言語プログラムをコンパイルすると、下記のエラーが出てコンパイルできません。
「/home/dryas/d_naviyas/yasnaviread.c:244:`gtk_window_get_type'に対する定義されていない参照です」
使用したコンパイル用のコマンドファイルの内容は以下の通りです。
「cc -g -o yasnaviread yasnaviread.c -lm -Wall `pkg-config --cflags gtk+-2.0`\
`pkg-config --libs gtk+-2.0` 」
どうやったら正常にコンパイルできるかのヒントを頂けると大変嬉しいです。

オフライン

 

#2 2016-06-12 17:27:56

aaabbbcccdddeeefffggghhh
メンバ
登録日: 2008-02-25

Re: 14.04では問題ないのに16.04ではコンパイルエラー

恐らくですが、コンパイルエラーの原因は改行です。

dryas による投稿:

「cc -g -o yasnaviread yasnaviread.c -lm -Wall `pkg-config --cflags gtk+-2.0`\
`pkg-config --libs gtk+-2.0` 」

Ubuntu 16.04では上記のコマンドの改行の後に半角スペースを入れないとコンパイルエラーになるようです。
なので、

コード:

cc -g -o yasnaviread yasnaviread.c -lm -Wall `pkg-config --cflags gtk+-2.0`\
 `pkg-config --libs gtk+-2.0`

として `pkg-config の直前に空白を入れるか、

コード:

cc -g -o yasnaviread yasnaviread.c -lm -Wall `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`

のように改行を挟まないようにすればコンパイルは通るのではないでしょうか。

オフライン

 

#3 2016-06-13 23:25:29

dryas
メンバ
登録日: 2010-11-30

Re: 14.04では問題ないのに16.04ではコンパイルエラー

ハーイ!`pkg-config --libs gtk+-2.0`の直前に半角ブランク入れましたら、コンパイルが正常に行きました!!(^o^)
感謝感激アメアラレ!!!(^O^) 誠にご指導有難うございました!!!!\(*^O^*)/ 

オフライン

 

#4 2016-06-14 15:01:16

dryas
メンバ
登録日: 2010-11-30

Re: 14.04では問題ないのに16.04ではコンパイルエラー

エー!上記のコンパイルは正常に行ったのですが、ランしますと以下の様にプログラムが起動されません!!
doro003[/home/dryas/d_naviyas]# ccyasnaviread
doro003[/home/dryas/d_naviyas]# gdb yasnaviread
GNU gdb (Ubuntu 7.11-0ubuntu1) 7.11
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from yasnaviread...done.
(gdb) run
Starting program: /home/dryas/d_naviyas/yasnaviread
During startup program terminated with signal SIGSEGV, Segmentation fault.
どなたからか解決方法のヒントを頂けますと、大変嬉しいです!!

オフライン

 

#5 2016-06-16 11:46:17

dryas
メンバ
登録日: 2010-11-30

Re: 14.04では問題ないのに16.04ではコンパイルエラー

エー補足します!同じプログラムをv14.04でコンパイルして作ったロードモジュールをv16.04に持ってきてランしても同じ現象になりますので、コンパイルのせいでは無い様です!!

オフライン

 

#6 2016-06-16 18:50:19

aaabbbcccdddeeefffggghhh
メンバ
登録日: 2008-02-25

Re: 14.04では問題ないのに16.04ではコンパイルエラー

Segmentation faultで落ちる場合はデバッガで地道に追いかけるしかないのでは…

オフライン

 

#7 2016-06-16 23:50:26

dryas
メンバ
登録日: 2010-11-30

Re: 14.04では問題ないのに16.04ではコンパイルエラー

 14日のコチトラの投稿にあります様に、gdbを起動しておりまして、コチトラのプログラムではなくってカーネルでセグメントフォールトが起きておりま(して、セグメントフォルトが起こった時gdbでwhereを入れますとスタックなしと出ま)すので、コチトラではチョット歯が立ちそうもございませんで困ったものでございます。
 

オフライン

 

Board footer

Powered by FluxBB