
Ubuntu日本語フォーラム

ログインしていません。
取り合えず経過報告です。configure 時のエラーがまだなくなっていません。
まずは
checking for working aclocal... missing checking for working autoconf... missing checking for working automake... missing checking for working autoheader... missing checking for working makeinfo... missing
のエラーをなくすために autoconf、automake、texinfo、libtools を Synaptic でインストール。
あとパッケージで、無いというメッセージが出たパッケージを Synaptic でインストール。
ちなみにインストールしたのは、gettext、bison、revu-tools、libboost-dev、libboost-filesystem-dev、texinfo 等をインストール。他のパッケージも入れたのですが、関係ありそうなパッケージをかたっぱしからいれたので忘れました。
それで現在 configure 時は以下の様に打ち込んでいます。
./configure --disable-gtktest --with-gnu-ld --with-included-gettext > err.txt
それで config.log でエラーを確認すると
configure:2346: gcc -c -g -O2 conftest.c >&5 conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' configure:2349: $? = 1 configure: failed program was: #ifndef __cplusplus choke me #endif configure:2463: checking for gcc option to accept ANSI C
configure:3484: gcc -E conftest.c configure:3480:28: error: ac_nonexistent.h: No such file or directory configure:3490: $? = 1 configure: failed program was: #line 3479 "configure" #include "confdefs.h" #include <ac_nonexistent.h>
configure:3575: gcc -E conftest.c configure:3571:28: error: ac_nonexistent.h: No such file or directory configure:3581: $? = 1 configure: failed program was: #line 3570 "configure" #include "confdefs.h" #include <ac_nonexistent.h> configure:3621: checking for ANSI C header files
configure:8226: gcc -o conftest -g -O2 conftest.c -lcposix -lpthread -ldl >&5
/usr/bin/ld: cannot find -lcposix
collect2: ld returned 1 exit status
configure:8229: $? = 1
configure: failed program was:
#line 8200 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char strerror ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
strerror ();
;
return 0;
}configure:8733:19: error: vfork.h: No such file or directory configure:8708: $? = 1 configure: failed program was: #line 8698 "configure" #include "confdefs.h" #include <stdio.h> #if HAVE_SYS_TYPES_H # include <sys/types.h> #endif #if HAVE_SYS_STAT_H # include <sys/stat.h> #endif #if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # if HAVE_STDLIB_H # include <stdlib.h> # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #if HAVE_STRINGS_H # include <strings.h> #endif #if HAVE_INTTYPES_H # include <inttypes.h> #else # if HAVE_STDINT_H # include <stdint.h> # endif #endif #if HAVE_UNISTD_H # include <unistd.h> #endif #include <vfork.h>
configure:8734: gcc -E conftest.c configure:8730:19: error: vfork.h: No such file or directory configure:8740: $? = 1 configure: failed program was: #line 8729 "configure" #include "confdefs.h" #include <vfork.h>
あと気になる warning もたくさんあったのですが、省略します。あまりに多すぎて orz
# configure の中に C や CPP のコードを書けるなんて知りませんでした。
# 多分 cat でファイルに吐いてるんだとは思いますけど。
# 今は conftest に悩まされています。rm されてしまうので。
# その次には vfork がらみの問題が待ってます orz
# ちょっと休憩します。
ダメです。私の力量ではお手上げです。
configure が古いんじゃないの?と思って ( というかそういうメッセージが出た )、autoheder、automake、autoscan、autoconf、aclocal を使って、configure を作り直して見たものの、見事に玉砕しました。
すいません。途中なのに降参します。
avidya による投稿:
ダメです。私の力量ではお手上げです。
configure が古いんじゃないの?と思って ( というかそういうメッセージが出た )、autoheder、automake、autoscan、autoconf、aclocal を使って、configure を作り直して見たものの、見事に玉砕しました。
すいません。途中なのに降参します。
いえいえ、ご尽力に感謝します。正直ここまでやって頂けるとは思っていませんでした。
どうもありがとうございます。
オフライン
私は以前、C言語の勉強を独学でしたのですが、途中でわからなくなり挫折しました。
なので今はCを「読む」程度のことしかできません。こんな私ですがまたCを勉強すれば上記パッケージをビルドできるようになれるでしょうか?
avidyaさんが、#9に
>元 C と C++ のプログラムを書いていた人間として、おかしなところを指摘しますね。
と書かれているので、プログラミングに関してかなり精通されている方とお見受けします。
そのavidyaさんが苦戦していることから察して、ド素人の私がいくら勉強しても無理なのでしょうか?
オフライン
syosinnsyaさん による投稿:
>元 C と C++ のプログラムを書いていた人間として、おかしなところを指摘しますね。
と書かれているので、プログラミングに関してかなり精通されている方とお見受けします。
そのavidyaさんが苦戦していることから察して、ド素人の私がいくら勉強しても無理なのでしょうか?
私が C と C++ に精通しているかどうかはともかく、私の勘では configure ファイルに問題があるんだと思うんですよ。configure で指定されている様々な命令が、現在の Ubuntu 環境にマッチしていないと思うんですよ。
というのは make 時に .c や .cpp のファイルその物で文法エラーは発生していないんですよ。本来 include されるべきヘッダファイルが include されていない、リンクされるべきライブラリが見つからない、なのに configure が通ってしまう。これが現在の状態だと思います。
一番よく分からないのが configure 内の以下の c のコードなんですけどね。
#ifndef __cplusplus choke me #endif
"choke me" っていったい何?
もっと分からないのは configure でエラーが明らかに出ているのに Makefile を作ってしまうという、configure の中身です。
最後の編集者: avidya (2008-09-10 18:12:30)
avidya による投稿:
エラーを吐いている "uiModule.c" の 48 行目のコードは、これだけなんです。
コード:
GtkWidget *margin_frame_;つまり "asm" も "__attribute__" 書かれていない。ということは GtkWidget が問題だと言うことです。
コレは, ";" や "," などがどっか抜けてるんじゃないの? てことです。
書かれてないってゆーより, そーゆーキーワードが入るはずでは? って助言してるです。
avidya による投稿:
一番よく分からないのが configure 内の以下の c のコードなんですけどね。
コード:
#ifndef __cplusplus choke me #endif"choke me" っていったい何?
「締め出して」みたいな感じ?
C++でなければエラーにしたい訳れすね。
オフライン
RxOrcaさん による投稿:
avidya による投稿:
エラーを吐いている "uiModule.c" の 48 行目のコードは、これだけなんです。
コード:
GtkWidget *margin_frame_;つまり "asm" も "__attribute__" 書かれていない。ということは GtkWidget が問題だと言うことです。
コレは, ";" や "," などがどっか抜けてるんじゃないの? てことです。
書かれてないってゆーより, そーゆーキーワードが入るはずでは? って助言してるです。
ソースの他の行にですか?uiModule.c を見る限り、そのようなところはありませでしたよ。それと #21 に書いたように
avidya による投稿:
それでいろいろ dev パッケージ内の include ファイルを当たってみたんですが、どうしても GtkWidget がみつからない
んですよ。
普通に考えて以下の事が予想されると思いますが。
1.Makefile がバギーである
2.Makefile を作る configure ファイルがバギーである
3.Makefile 中の gcc に渡されているパラメータがおかしい
4.typedef で定義されていると思われる GtkWidget がおかしい ( これは gtk のバージョンの違いから生じ得る )
最後の編集者: avidya (2008-09-10 19:35:22)
avidya による投稿:
4.typedef で定義されていると思われる GtkWidget がおかしい ( これは gtk のバージョンの違いから生じ得る )
どうもこれが怪しい候補に上がってきました。なぜかというと include ファイルを include できなかったら、通常コンパイラはそこで hoge.h Not Found とかエラーを吐きますよね。ところがここではそれがない。
一応、クラスというか構造体の定義を発見したのですが、特におかしいところを見つけることはできませんでした。コンパイルエラーの理由が分からん (`へ´)ノ
avidya による投稿:
RxOrcaさん による投稿:
avidya による投稿:
エラーを吐いている "uiModule.c" の 48 行目のコードは、これだけなんです。
コード:
GtkWidget *margin_frame_;つまり "asm" も "__attribute__" 書かれていない。ということは GtkWidget が問題だと言うことです。
コレは, ";" や "," などがどっか抜けてるんじゃないの? てことです。
書かれてないってゆーより, そーゆーキーワードが入るはずでは? って助言してるです。ソースの他の行にですか?uiModule.c を見る限り、そのようなところはありませでしたよ。それと #21 に書いたように
ちと分かりにくかったカモですね。
gccのエラーメッセージでは (つまり gccが期待するトークン? として) そーゆーのが並んでるべき, みたいな意味です。
(具体的には typedefされていないだけ, みたいな)
んで, コレは 32bit版であれば普通に通るもののはずです。
(その後のコンパイルも)
インストールしたての Ubuntu 32bit版で, 同パッケージを作ってみて, その時に足りないパッケージがあればインストールするとか …
作成できたら, 同じ作業を 64bit版で行ってみるとよいカモです。
それで失敗するよーなら, 64bitへの移植は難しいタイプのパッケージなんでしょう。きっと。
オフライン
RxOrcaさん による投稿:
gccのエラーメッセージでは (つまり gccが期待するトークン? として) そーゆーのが並んでるべき, みたいな意味です。
(具体的には typedefされていないだけ, みたいな)
それがちゃんと typedef されてるんですよ。構造体の宣言は gtkwidget.h で行われていて、typedef は gtkstyle.h でされてるんですよ。
となると、怪しいのはドライバ自体のソースもしくはヘッダファイルになるような.....
RxOrcaさん による投稿:
インストールしたての Ubuntu 32bit版で, 同パッケージを作ってみて, その時に足りないパッケージがあればインストールするとか …
うっ。ちょっとそれは勘弁です。実際に実用に供しているマシン 1 台しかないので。
どなたか環境をスクラッチビルドしても構わないようなマシンをお持ちの方で、手伝っていただける方はいらっしゃいませんか?
# 私はもう走れません orz
最後の編集者: avidya (2008-09-10 21:12:28)
avidya による投稿:
RxOrcaさん による投稿:
インストールしたての Ubuntu 32bit版で, 同パッケージを作ってみて, その時に足りないパッケージがあればインストールするとか …
うっ。ちょっとそれは勘弁です。実際に実用に供しているマシン 1 台しかないので。
どなたか環境をスクラッチビルドしても構わないようなマシンをお持ちの方で、手伝っていただける方はいらっしゃいませんか?
VirtualBoxとか qemu/KVM とか, あるいは chrootって手もあるです。 ;)
以前にも投稿したよーに, (32bit版として用意されてるはずのものから) 64bit版への移植は大変な作業になる可能性があるです。
C言語だけを考えても …
printf("hello world\n"); … みたいなプログラムであれば 8bit版でも 64bit版でも同じカモです。
でも, intのサイズ, ポインターのサイズ, ポインターで指し示せる領域, いろんなものが異なるです (他のアーキテクチャーではバイトアラインメントとか, バイトオーダとかも)。
ある程度 移植性を考えてプログラムが作られていても, 開発者の想定外の要素があれば, コンパイルできなくなったり, できても動きが変だったり。
中には何の苦労もなく 64bitに対応できるものもあるのカモだけど, そーでないものもそれなりにあるはずです。
なので, 必要なパッケージが無ければ 32bit版のソレを使うとか, (使用する人が)自分でビルドするとか … になるです。
(32bitパッケージがそのままインストール可能なのかどーか知らないけど, 何かあるはず)
# あるいは誰か人を雇って ビルドしてもらうとか
(利用者が) 64bitパッケージが少なくて何とかしたいと考えての事なら, そして, フォーラムに投稿するのならば
「ある程度まで自分で何とかしてみたけれど "ここの部分" が分からない」みたいなのがよいカモです。
そうすれば, 討論できるのカモだけど (ここのフォーラムが相応しいかどうか別として)。
単にこのドライバーを使用するだけなら, Ubuntu 32bit版を使用するのがよいカモです。
(あるいは 64bit版に 32bitパッケージをインストール)
オフライン
こんばんは:)
私ににはかなりハイレベルなお話に思えています。すごいです。
単に、印刷をしたいだけ、なら簡単な方法が有ります。正当な方法かどうかは解りませんが・・・
宜しければ、http://forum.ubuntulinux.jp/viewtopic.php?id=2335を見て下さい。
オフライン
>単にこのドライバーを使用するだけなら, Ubuntu 32bit版を使用するのがよいカモです。
>(あるいは 64bit版に 32bitパッケージをインストール)
ここに二種類のドライバが置いてあります。(私のプリンタはCC-600PXです。)
ひとつはrpmパッケージです。もうひとつはソースです。(32bit版用)
rpmパッケージの方はalienを使ってdebにしようとしたのですが、エラーがでて使えませんでした。(その時の経緯はこちらの#25以降です)
そういうわけでソースからのビルドを試みているのですが、あいにく上記のありさまです。
さらに私はCを読む程度のプログラミングしかできませんorz
>単に、印刷をしたいだけ、なら簡単な方法が有ります。正当な方法かどうかは解りませんが・・・
>宜しければ、http://forum.ubuntulinux.jp/viewtopic.php?id=2335を見て下さい。
私も試みましたが、上記の通りです。
最後の編集者: syosinnsya (2008-09-10 23:43:32)
オフライン
こんばんは。横から入ってすみません。
umioajiさんが提示されてるのは、rpmをdebに変換することではなく、
rpmを直接展開し、中身のPPDファイルを取り出し、登録するということではないでしょうか。
オフライン
>umioajiさんが提示されてるのは、rpmをdebに変換することではなく、
>rpmを直接展開し、中身のPPDファイルを取り出し、登録するということではないでしょうか。
umioajiさんが提示されているこちらのページをもう一度読み直してみました。
#7でRxOrcaさんが「「日経Linux」の記事は, もしかすると中身を取り出して環境に合わせることとか書いてあるのかも (本読んでいないので勝手な事ゆってるけど (^^; )」と発言しています。発言の通り内容は読んでいないと思われます。
さらにこちらの#12のpuyanpuyanさんは「7/8発売の日経Linuxには、Avasys提供のドライバをalienを使ってrpmファイルをdebに変換したうえでインストールする方法が記述されていました。」とあるので、RxOrcaさんの予想に反して、7/8発売の日経Linuxには、Avasys提供のドライバをalienを使ってrpmファイルをdebに変換したうえでインストールする方法が書いてあった・・・
と、自分なりに勝手に解釈しました。
つまり、私はこちらのトピック内からはrpmを直接展開し、中身のPPDファイルを取り出すという方法は書いていないと思っているのですが、私の解釈にどこか不備があり、トピック内のどこかにPPDファイルを直接取り出す方法が記述されているなら教えていただけないでしょうか?
最後の編集者: syosinnsya (2008-09-11 00:40:30)
オフライン
おはようございます。
syosinnsya による投稿:
トピック内のどこかにPPDファイルを直接取り出す方法が記述されているなら教えていただけないでしょうか?
umioajiさんの最後の投稿(#20)がその方法と思っておりますが。
オフライン
RxOrcaさん による投稿:
VirtualBoxとか qemu/KVM とか, あるいは chrootって手もあるです。 ;)
お前続けてやれと.....
すいません。なんか仕事をしている気分になってきていて、気力が限界です orz
中途半端で申し訳ないですが、撤退させてください。
RxOrcaさん による投稿:
でも, intのサイズ, ポインターのサイズ, ポインターで指し示せる領域, いろんなものが異なるです (他のアーキテクチャーではバイトアラインメントとか, バイトオーダとかも)。
このことは、もちろん一応頭の中にはありますよ〜
つーか、64bit 用のドライバを 1 から作らないとダメなんじゃねー?というのが私の目下の結論なんですが。なんか時間を無駄に使ってるような気がします。
# ところで ANSII C と gcc とは、言語仕様が違うんでしょうか?
# 私は今でもラベルが必要なら "hoge:" って書き方をしていますが、
# "__label__" なんて使ったことがありません。
# でも昔の gcc では "__なんちゃら__" なんて使わなくても
# コンパイルが通ってたような?
最後の編集者: avidya (2008-09-11 09:20:20)
>umioajiさんの最後の投稿(#20)がその方法と思っておりますが。
すいません。見落としてみました。そのやり方でやってみます。
ソースからのinstallとは違うので専用トピックを立てて質問してみました。こちらです。
>つーか、64bit 用のドライバを 1 から作らないとダメなんじゃねー?
avidyaさん、ご協力どうもありがとうございます。本当にありがとうございます。
自分でC言語を勉強してビルドできるようにします。
最後の編集者: syosinnsya (2008-09-11 17:03:13)
オフライン
32bit環境でビルドを試してみました。
同じようなエラーが発生していたので、libgtk1.2-devをインストールしてビルドをしましたが、その先でエラーが発生しています。
以下エラーの抜粋を掲載
/bin/bash ../libtool --mode=link gcc -g -O2 -Wall -o dtrfilter img.o pfpng.o main.o -ldl -lm ../lib/libdtr.a -lpthread -ldl gcc -g -O2 -Wall -o dtrfilter img.o pfpng.o main.o -lm ../lib/libdtr.a -lpthread -ldl /usr/bin/ld: error in ../lib/libdtr.a(imgdetect_pips.o)(.eh_frame); no .eh_frame_hdr table will be created. ../lib/libdtr.a(imgdetect_pips.o): In function `OutputMemAtBmp': /home/ysd/build/pips-devel/pips-closed/src/imgdetect_pips.cc:46: undefined reference to `__builtin_new' /home/ysd/build/pips-devel/pips-closed/src/imgdetect_pips.cc:95: undefined reference to `__builtin_delete' /home/ysd/build/pips-devel/pips-closed/src/imgdetect_pips.cc:95: undefined reference to `__rethrow' ../lib/libdtr.a(imgdetect.o): In function `FUNC006::~FUNC006(void)': /home/ysd/build/pips-devel/pips-closed/src/imgdetect.cc:128: undefined reference to `__builtin_delete' collect2: ld returned 1 exit status
リンクでエラーが発生している気配ですが。
PPDが必要なだけなら、./configure してmakeするとPPDディレクトリの下にファイルが出来ているようなのですが、このファイルではダメなのでしょうか?
実機を持ってないので試せないのですが。
---------- 追記 ----------
Makeを実行するとファイルが出来上がるわけではなく、最初からppdフォルダの中にファイルはあるようですね。失礼しました。
最後の編集者: kaorin (2008-09-11 18:10:29)
オフライン
このトピックの続きはhttp://forum.ubuntulinux.jp/viewtopic.php?id=2805 にあります。
一応、このトピックは締めとなったようです。
最後の編集者: avidya (2008-09-11 21:40:52)
ソースからビルドする話はここで構わないと思うのですが、PPDファイルの抽出はここでお願いします。
オフライン
ソースからビルドする場合, 64bit版への移植は (想定されていない場合等では)難しい, *事も* ある …
「あなたプログラマーですか?」
「だったらこんなプログラム作って」
と言われた場合, スクリプト言語でほんのちょっと作れば済むのなら作ってあげてもよいカモです。
でも大規模だったら, その旨 知らせた方がよいのカモ。
頼む方にとっても …
「そっちに行ったボール取って」 って頼むのは OKでしょー。
でも, 頼めば何とかしてくれる人がいるので 「ここん家の炊事・洗濯, 家事一切を頼むよ」「タダでね」 は, いきすぎだと思うです。
もちろんそんなつもりじゃなくて, 軽い気持ちだったのカモだけど。
(小規模か大規模かは判断しづらいカモだし)
avidya による投稿:
RxOrcaさん による投稿:
VirtualBoxとか qemu/KVM とか, あるいは chrootって手もあるです。 ;)
お前続けてやれと.....
すいません。なんか仕事をしている気分になってきていて、気力が限界です orz
中途半端で申し訳ないですが、撤退させてください。
(中略)
つーか、64bit 用のドライバを 1 から作らないとダメなんじゃねー?というのが私の目下の結論なんですが。なんか時間を無駄に使ってるような気がします。
んで, ジョークにマジレスっぽい気がするので, 補足です。
一般的に … ":-)" とか ":D" とか付いてたら冗談めかしてゆってるのだと思ってくらはい。
逆に, ":-(" とか付いてたらマジレスっぽいものカモ。
avidya による投稿:
# ところで ANSII C と gcc とは、言語仕様が違うんでしょうか?
# 私は今でもラベルが必要なら "hoge:" って書き方をしていますが、
# "__label__" なんて使ったことがありません。
# でも昔の gcc では "__なんちゃら__" なんて使わなくても
# コンパイルが通ってたような?
あくまで「拡張」です。
例えばマクロでラベルを使用する場合, 通常であれば 1度しか呼び出せないカモです。
ラベル名が重複するから 2度目に使用するとエラー。
それが これを使うとアラ不思議, みたいな。
オフライン
この件に関しては以下のトピックで解決しましたので、一応解決済みにしたいと思います。
解答してくださった方々には感謝します。
本当にありがとうございました。
関連トピック
[解決済み]EPSON CC-600PXを動かしたい
オフライン