
Ubuntu日本語フォーラム

ログインしていません。
日経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` 」
どうやったら正常にコンパイルできるかのヒントを頂けると大変嬉しいです。
オフライン
恐らくですが、コンパイルエラーの原因は改行です。
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`
のように改行を挟まないようにすればコンパイルは通るのではないでしょうか。
オフライン
ハーイ!`pkg-config --libs gtk+-2.0`の直前に半角ブランク入れましたら、コンパイルが正常に行きました!!(^o^)
感謝感激アメアラレ!!!(^O^) 誠にご指導有難うございました!!!!\(*^O^*)/
オフライン
エー!上記のコンパイルは正常に行ったのですが、ランしますと以下の様にプログラムが起動されません!!
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.
どなたからか解決方法のヒントを頂けますと、大変嬉しいです!!
オフライン
エー補足します!同じプログラムをv14.04でコンパイルして作ったロードモジュールをv16.04に持ってきてランしても同じ現象になりますので、コンパイルのせいでは無い様です!!
オフライン
Segmentation faultで落ちる場合はデバッガで地道に追いかけるしかないのでは…
オフライン
14日のコチトラの投稿にあります様に、gdbを起動しておりまして、コチトラのプログラムではなくってカーネルでセグメントフォールトが起きておりま(して、セグメントフォルトが起こった時gdbでwhereを入れますとスタックなしと出ま)すので、コチトラではチョット歯が立ちそうもございませんで困ったものでございます。
オフライン