K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[1650] PHPとmysqlで掲示板作成について
投稿者:sayonara
2010/12/17 17:52:37

phpとmysqlで掲示板作成してみていますが、 「get_cssのfunctionが定義されていない」というエラーが出ました。 確認したところ、 util.phpに定義されていないです!!! get_cssの処理内容を貼ってください。 宜しくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1649] Re:オブジェクト指向のメリット
投稿者:774RR
2010/12/17 11:39:11

オブジェクト指向という「概念」=抽象 実際のプログラミング言語という「実装」=具体 とがごっちゃになっているからわけわからん気味なのだと思うが C++ なり Python なり「オブジェクト指向を意識した言語」では 「対象物」を示す this や self が言語仕様上必須になっているため、 プログラマが引数の形で明示しなくても「何を対象に」が自動的に表現される =対象指定を欠くことができない =対象を暗示的に使う C の strtok のようなものは実装しづらい だけなのだと思う。 対象を指定することが強制されるってことはすなわち「対象が複数個数あるのが前提」 =マルチプルインスタンスであることは前提条件、当たり前である のだと思う。 C では「言語仕様上」 this が必須でない =「言語仕様上は」対象を明示しなくてもよい、ってだけで プロジェクトの運用方針などで「第一引数を hogehoge* にすること必須」と決めてしまえば それで十分オブジェクト指向なプログラムは可能。 言語側でのネイティブサポートがあるかないか、の違いでしかないと思うの心
[この投稿を含むスレッドを表示] [この投稿を削除]
[1648] Re:オブジェクト指向のメリット
投稿者:(ぱ)こと管理人
2010/12/17 01:34:38

>※C言語では問題という説明でしたよね。strtok()関数の実装[関数仕様]の問題でC言語で不可能という話ではないと思います。 「C言語で不可能」と書いたおぼえはないですが…… 「C言語では問題」と書いたおぼえもないですが…… 「Cの流儀では多くの場合こう書くのではないか」という想定はある程度置いていますけど。 >strtok2( STR, getid, delimiter ); >strtok2( NULL, id, delimiter ); http://kmaebashi.com/programmer/object/othello.html 上記のページで、 void board_put(Board *board, int x, int y, int senteOrGote); というCの関数に対し、 「---つまり、これがオブジェクト指向です。」 と書いています。 同様のことを以下のページでも書いています。 http://kmaebashi.com/programmer/c_yota/module.html >XXX_hoge(XXX_Instance xxx, 第2引数, 第3引数); >敢えて大雑把な言い方をすれば、要するにこれがオブジェクト指向です。 >継承を考えない限りにおいては、 C++でもJavaでも、要するにやってることは >インスタンスのポインタを第1引数に持って回ってるだけのことであって、 >あとは、表記法が若干異なるのと、メソッドの名前空間が異なる程度の話です。 >実例としては昔のSunOSに付属していたSunViewというウィンドウ環境がありました。 私はSunViewはほぼ触ったことがありません。その後のXViewは割と使いました。 Xtはもっと使ってます。 で、このへんのライブラリは、「Cで無理やりオブジェクト指向を実現した例」 だと思っています。 http://kmaebashi.com/programmer/c_yota/inherit.html 私の認識と、「偏」さんの認識はたいへんに近いと思うので、反論(?)の 必要はないですよね。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1647] Re:オブジェクト指向のメリット
投稿者:
2010/12/16 23:16:38

はじめまして。 >こちらにStringTokenizerの例を出しましたが、これはどうでしょうか? >http://kmaebashi.com/programmer/object/shigoto.html > >StringTokenizerはCのstrtok()と違って、プログラムの複数の箇所から同時アクセス >できる(というよりは、よそで使われているかどうかを意識せずに使うことができる) >わけです。 それって、strtok()がそういう使い方に配慮されてないだけに思えます。 ※C言語(非インスタンス化言語)だからできないという話とすり替えられているように感じました。 ※strtok()はそんな実装なので、それが保証できない時には別途用意したこっちの関数使おうねで良さそうに感じました。 オブジェクト指向が必要ないといいたい訳ではなく、旧来のC言語でも問題なく処理できる(ライブラリ化可能)と思います。 ※C言語では問題という説明でしたよね。strtok()関数の実装[関数仕様]の問題でC言語で不可能という話ではないと思います。 strtok2( STR, getid, delimiter ); strtok2( NULL, id, delimiter ); と呼び出し手順(IF)を変えてstrtok2内部でSTRを複数保持するようにする事で可能となりますよね。 StringTokenizerのインスタンスとして保持している情報をstrtok2()内部で保持してやる。 char coloncol[]="abc:cde:efg:ghij"; char commacol[]="abc,cde,efg,ghij"; char *result; int idcol, idcom; result = strtok2( coloncol, &idcol, ':' ); result = strtok2( NULL, idcol, ':' ); result = strtok2( commacol, &idcom, ',' ); result = strtok2( NULL, idcol, ':' ); result = strtok2( commacol, idcom, ',' ); result = strtok2( commacol, idcom, ',' ); ※実際使うにはインスタンスの開放的なIFも追加する事になるかと >また、たとえば大昔のBASICやHSPとかでは、画面に線を引く命令が、ウインドウを >引数に取りません。まあ、大昔のBASICにはマルチウインドウがなかったから >当然かもしれませんが、オブジェクト指向的に考えれば、最初から「ウインドウ」という >クラスを作り、複数のウインドウを開けるようにするのではないでしょうか。 実例としては昔のSunOSに付属していたSunViewというウィンドウ環境がありました。 C++が作られるより古い時代ですが、例えばPanelCreate()関数でPanelObjectを作る(もちろん複数可)感じでC言語のライブラリ使い実現されてましたよ。 ※WindowやPanelやItemやCanvasやと色々な部品がありました。同じ種類を複数生成する事もできましたよ。 ※SunOS3.x, SunOS4.xで使えた記憶が。4ではX11ベースのOpenWindowへの移行が推奨されてましたが。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1646] Re:オブジェクト指向のメリット
投稿者:(ぱ)こと管理人
2010/12/14 02:22:28

はじめまして。 >しかし、複数の人が同時アクセス出来ることがメリットの一つであるのであれば、 >それはそれで納得できます。 オセロでは確かにそういう例を出しましたが、「複数の人(人間)が」と言ってしまうと、 適用範囲がずいぶん狭くなってしまうように思います。 こちらにStringTokenizerの例を出しましたが、これはどうでしょうか? http://kmaebashi.com/programmer/object/shigoto.html StringTokenizerはCのstrtok()と違って、プログラムの複数の箇所から同時アクセス できる(というよりは、よそで使われているかどうかを意識せずに使うことができる) わけです。 また、たとえば大昔のBASICやHSPとかでは、画面に線を引く命令が、ウインドウを 引数に取りません。まあ、大昔のBASICにはマルチウインドウがなかったから 当然かもしれませんが、オブジェクト指向的に考えれば、最初から「ウインドウ」という クラスを作り、複数のウインドウを開けるようにするのではないでしょうか。 もちろん、オブジェクト指向のメリットはこれだけではなくて、継承やら多態も あるのですけれど、そのあたりは他の本とかにも書いてあるということ、 特に継承についてはあまりいい例題がないということから放置してしまっています。 すみません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1645] オブジェクト指向のメリット
投稿者:たいやき
2010/12/13 18:53:26

疑り深いあなたのためのオブジェクト指向を読ませていただきました。 読んでいくなかで、自分のマルチプルインスタンスに対する知識や理解と、 記載されていることに差異があるように感じました。 どちらが正しいかは別として、まえばし様が記載されている内容を理解した上で、 どちらが正しいのか自分なりに判断したく、まえばし様が記載されている内容を、 私が正しく理解しているかどうか確認させていただければ幸いです。 オブジェクト指向の本質は、マルチプルインスタンスだと記載されており、 その後の説明で、オセロ盤を用いての説明で、C言語では、 (盤面ごとに別プロセスを立ち上げない限り)複数の人が同時アクセスして 使えるようなアプリは作れない(もしくは作りづらい)と書かれている という認識です。 そして、オブジェクト指向型であれば、複数のインスタンス(=盤面)が作成 出来るので、複数の人が同時アクセスするオセロが作れると記載されていると 理解しています。 もし、この理解が正なのであれば、マルチプルインスタンスの必要性やメリットが なんなのかを考えると、マルチプルインスタンスのメリットの一つは、複数の人が 当時アクセス出来るアプリを作ることが出来るアーキテクトであるということに なると思っています。 逆に、C言語のようなものは、複数の人が同時アクセスして動くアプリが作れない (つくりにくい)という特徴を持っていると理解したのですが、その認識は あっていますでしょうか? 私は、マルチプルインスタンスを作ることが出来るのがオブジェクト指向の 特徴であることは理解していますが、では、マルチプルインスタンスが作れる メリットは何なのかと考えると、一向に分かりません。 しかし、複数の人が同時アクセス出来ることがメリットの一つであるのであれば、 それはそれで納得できます。 よろしくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1644] Re:from,phpについて
投稿者:(ぱ)こと管理人
2010/11/25 01:09:23

>すみませんが、この掲示板の作成とは具体的にどういうことでしょうか? >一応、dbは作ったのですが、データを作成するといったことでしょうか? こちらを参照してください。 http://kmaebashi.com/programmer/bbs_dev/newbbs.html 具体的には、boardテーブルにレコードをひとつ作る作業となります。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1643] Re:from,phpについて
投稿者:Paulo
2010/11/24 08:59:01

> >よって、ご自分で試されるのであれば、先に掲示板の作成を行ってから >その掲示板のIDを指定するようにしてください。 前橋さま 早速のご返答、感謝しています。 当方は、メインフレーム、AS/400などのプログラミングをブラジルで仕事としてやっていましたが、今後はオープン系のプログラミングを趣味もかねて勉強していこと思っているものです。  すみませんが、この掲示板の作成とは具体的にどういうことでしょうか? 一応、dbは作ったのですが、データを作成するといったことでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1642] Re:from,phpについて
投稿者:(ぱ)こと管理人
2010/11/21 15:28:41

from.phpの中の下記のところで "urlが変です。"と画面にでてきて、処理が先に進まない状態なのですが、進めるにはどうしたらいいのでしょうか? > > 11: if (!isset($_GET["boardid"])) { > 12: die('URLが変です。'); > 13: } 以下のページにも書いてありますが、 http://kmaebashi.com/programmer/bbs_dev/spec.html この掲示板は、仕様として boardid="掲示板のID" というように、掲示板のIDを渡すようにしています。 今あなたが見ているこの掲示板も、 http://kmaebashi.com/bbs/list.php?boardid=kmaebashibbs という形で、「kmaebashibbs」という掲示板のIDを渡しています。 テスト投稿用のテスト用掲示板も用意していますが、そのURLはこうです。 http://kmaebashi.com/bbs/list.php?boardid=testbbs よって、ご自分で試されるのであれば、先に掲示板の作成を行ってから その掲示板のIDを指定するようにしてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1641] from,phpについて
投稿者:Paulo
2010/11/20 16:33:08

php初心者ですが宜しくお願いします。 いま、このサイトに記載している投稿フォームのプログラムを勉強中なのですが、from.phpの中の下記のところで "urlが変です。"と画面にでてきて、処理が先に進まない状態なのですが、進めるにはどうしたらいいのでしょうか? 11: if (!isset($_GET["boardid"])) { 12: die('URLが変です。'); 13: } 教えて頂ければ幸いです。よろしくお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1640] Re:不具合について
投稿者:Tadashi
2010/09/20 10:04:24

>minGW でなきゃならない、ってことは無いので cygwin でも問題ないはず。 >現にウチでは問題ないし。 >まあなんにせよ minGW が欲しいのなら http://www.mingw.org/ > >> exeファイルはできるのですがなぜかcommand not foundとなってしまいます。 >どう作った?どう起動した? >UNIX 系 OS ではセキュリティ的配慮として、標準設定では >カレントディレクトリはコマンド検索パスに含まれない。 >#1621 と同様 gcc -o mycalc y.tab.c lex.yy.c と入力したのであれば >(cygwin の場合) a.exe というファイルが作成される。 >これを起動しようとして a<enter> と入力しても command not found になる。 > >$ ./a.exe <enter> のように どっと すらっしゅ を明示指定し、 >「カレントディレクトリにある a.exe を起動する」とするとよいはずだ。 > ありがとうございます!./で何とか起動しました。 それにしてもなぜ気づかなかったのか?わからないです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1638] Re:不具合について
投稿者:774RR
2010/09/16 22:48:24

>#1621 と同様 gcc -o mycalc y.tab.c lex.yy.c と入力したのであれば >(cygwin の場合) a.exe というファイルが作成される。 ああ、大嘘 (爆) mycalc.exe というファイルが生成されるんだけど、 これを起動しようとして mycalc <enter> と入力すると以下略。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1637] Re:不具合について
投稿者:774RR
2010/09/16 22:40:01

minGW でなきゃならない、ってことは無いので cygwin でも問題ないはず。 現にウチでは問題ないし。 まあなんにせよ minGW が欲しいのなら http://www.mingw.org/ > exeファイルはできるのですがなぜかcommand not foundとなってしまいます。 どう作った?どう起動した? UNIX 系 OS ではセキュリティ的配慮として、標準設定では カレントディレクトリはコマンド検索パスに含まれない。 #1621 と同様 gcc -o mycalc y.tab.c lex.yy.c と入力したのであれば (cygwin の場合) a.exe というファイルが作成される。 これを起動しようとして a<enter> と入力しても command not found になる。 $ ./a.exe <enter> のように どっと すらっしゅ を明示指定し、 「カレントディレクトリにある a.exe を起動する」とするとよいはずだ。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1636] 不具合について
投稿者:Tadashi
2010/09/16 12:53:53

はじめまして。Tadashiと申します。非常に初歩的な質問で申し訳ないのですが、MinGW-5.1.4.exeがある場所がわかりません。記載のサイトにアクセスしてみましたが見つかりませんでした。しかたがないのでCygwinで電卓を作成してみたのですが、exeファイルはできるのですがなぜかcommand not foundとなってしまいます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1635] Re:admindeletedindex.php
投稿者:coolm
2010/09/14 18:06:33

>前橋様、 なるほどです。ありがとうございます。 >>管理者削除後、日付順インデックスに、「管理者削除」を表記するためのadmindeletedindex.phpのソースが見当たらないので、ソースを教えていただけないでしょうか? よろしくお願いいたします。 > >たいしたものではありませんがいちおう貼っておきます。 > ><tr> ><td align="right">[<?=$serialid?>]</td> ><td> > <a href="./list.php?boardid=<?=$board_id?>&from=<?=$serialid?>&range=1"> > 管理者により削除されました > </a> ></td> ></tr> > >
[この投稿を含むスレッドを表示] [この投稿を削除]
[1634] Re:admindeletedindex.php
投稿者:(ぱ)こと管理人
2010/09/14 01:33:51

>管理者削除後、日付順インデックスに、「管理者削除」を表記するためのadmindeletedindex.phpのソースが見当たらないので、ソースを教えていただけないでしょうか? よろしくお願いいたします。 たいしたものではありませんがいちおう貼っておきます。 <tr> <td align="right">[<?=$serialid?>]</td> <td> <a href="./list.php?boardid=<?=$board_id?>&from=<?=$serialid?>&range=1"> 管理者により削除されました </a> </td> </tr>
[この投稿を含むスレッドを表示] [この投稿を削除]
[1633] admindeletedindex.php
投稿者:coolm
2010/09/13 01:11:54

前橋様、こんにちは。 前橋様の、「PHPとMySQLで掲示板を作る」を拝見させていただき、掲示板を作らせていただいてる者です。 本当にありがたく拝見させていただき、勉強させてもらいながら、悪戦苦闘しながら作っています。本当に感謝しております。 つまづいてる箇所がありまして、前橋様にお願いがあります。 管理者削除後、日付順インデックスに、「管理者削除」を表記するためのadmindeletedindex.phpのソースが見当たらないので、ソースを教えていただけないでしょうか? よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1629] 管理者により削除されました
2010/09/12 07:39:06

テスト用掲示板を知らずにこっちに書いちゃったのかな、、と思ったら、 テスト用掲示板よりもこっちの方が投稿時刻が遅い謎。
[この投稿を含むスレッドを表示]
[1628] Re:あら捜し
投稿者:(ぱ)こと管理人
2010/08/25 02:53:25

>http://kmaebashi.com/programmer/devlang/book/hosoku.html >不動になってますが浮動でしょうね(3箇所) > >http://kmaebashi.com/taiatari/seigo.html >p.333 scanf は変換個数ではなく代入個数を返す >(http://kmaebashi.com/seiha/seigo.html こっちは修正済み) ご指摘ありがとうございます。2点とも修正しました。 いやもうなんといいますか本当に、いつもお世話になってます(_o_)
[この投稿を含むスレッドを表示] [この投稿を削除]
[1627] あら捜し
投稿者:774RR
2010/08/24 15:15:04

http://kmaebashi.com/programmer/devlang/book/hosoku.html 不動になってますが浮動でしょうね(3箇所) http://kmaebashi.com/taiatari/seigo.html p.333 scanf は変換個数ではなく代入個数を返す (http://kmaebashi.com/seiha/seigo.html こっちは修正済み)
[この投稿を含むスレッドを表示] [この投稿を削除]
[1626] Re:mycalc でエラー発生
投稿者:774RR
2010/08/21 06:57:53

おお、よかったですな。 これに懲りずにいろいろ遊んでみてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1625] Re:mycalc でエラー発生
投稿者:チャチャ丸
2010/08/21 03:20:23

>俺んところでは MinGW をインストールした履歴は無いのでうまく動くのかもしれない。 >特に理由が無ければ MinGW 系をアンインストールしてみるといいかもしれない。 >ないしは cygwin をアンインストールして MinGW だけにしてみるか。 うわー出来ました!! アドバイス通りcygwinをアンインストールしてMinGWの方だけで設定したら出来ました。 本当にありがとうございます。 仰られた通りどっちも読み込んでいた(?)のが原因だったみたいです。 みなさんお忙しいなか何度もアドバイスをありがとうございました。 これからまた色々試してみたいと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1624] Re:mycalc でエラー発生
投稿者:774RR
2010/08/20 16:13:48

俺んところと以下の二箇所が違うね・・(メモリ容量の数値とかは無視) >ignoring nonexistent directory "C" こちらは今回のエラーに直接関係なさそうなので無視してよいと思われる。 >#include <...> search starts here: >\MinGW\include こっちが問題の原因であろうと推測される。俺んところではこの行 (\MinGW\include) が無い。 cygwin 1.7 で MinGW のサポートが打ち切られているはずなので MinGW の関連ファイルを探してしまうのはあまりよろしくないのでは・・・ Q1.過去に minGW をインストールした? Q2.cygwin setup で gcc-mingw gcc-mingw-core とかインストールした? 俺んところでは MinGW をインストールした履歴は無いのでうまく動くのかもしれない。 特に理由が無ければ MinGW 系をアンインストールしてみるといいかもしれない。 ないしは cygwin をアンインストールして MinGW だけにしてみるか。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1623] Re:mycalc でエラー発生
投稿者:チャチャ丸
2010/08/20 10:41:31

>ちなみに gcc --version と入力したときになんて表示される? >ウチでは gcc (GCC) 4.3.4 20090804 (release) 1 になっている。 全く同じバージョンでした。 ので出力されたhoge.txt載せますね。 gcc: 2: No such file or directory Using built-in specs. Target: i686-pc-cygwin Configured with: /gnu/gcc/releases/respins/4.3.4-3a/gcc4-4.3.4-3/src/gcc-4.3.4/configure --srcdir=/gnu/gcc/releases/respins/4.3.4-3a/gcc4-4.3.4-3/src/gcc-4.3.4 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --infodir=/usr/share/info --mandir=/usr/share/man --datadir=/usr/share --infodir=/usr/share/info --mandir=/usr/share/man -v --with-gmp=/usr --with-mpfr=/usr --enable-bootstrap --enable-version-specific-runtime-libs --with-slibdir=/usr/bin --libexecdir=/usr/lib --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --disable-symvers --enable-libjava --program-suffix=-4 --enable-libgomp --enable-libssp --enable-libada --enable-threads=posix --with-arch=i686 --with-tune=generic --enable-libgcj-sublibs CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4 CXX_FOR_TARGET=g++-4 GNATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind --with-ecj-jar=/usr/share/java/ecj.jar Thread model: posix gcc version 4.3.4 20090804 (release) 1 (GCC) COLLECT_GCC_OPTIONS='-v' '-o' 'mycalc.exe' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.3.4/cc1.exe -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/lib/../../include/w32api y.tab.c -quiet -dumpbase y.tab.c -mtune=generic -march=i686 -auxbase y.tab -version -o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccyoqpc6.s ignoring nonexistent directory "C" ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/include" ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/lib/../../include/w32api" #include "..." search starts here: #include <...> search starts here: \MinGW\include /usr/lib/gcc/i686-pc-cygwin/4.3.4/include /usr/lib/gcc/i686-pc-cygwin/4.3.4/include-fixed /usr/include /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../include/w32api End of search list. GNU C (GCC) version 4.3.4 20090804 (release) 1 (i686-pc-cygwin) compiled by GNU C version 4.3.4 20090804 (release) 1, GMP version 4.3.1, MPFR version 2.4.1-p5. GGC heuristics: --param ggc-min-expand=45 --param ggc-min-heapsize=28600 Compiler executable checksum: f80f2b86ee4951059548b57e98331af2 COLLECT_GCC_OPTIONS='-v' '-o' 'mycalc.exe' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/as.exe -v -o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccVAFJ0o.o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccyoqpc6.s GNU assembler version 2.20.51 (i686-cygwin) using BFD version (GNU Binutils) 2.20.51.20100410 COLLECT_GCC_OPTIONS='-v' '-o' 'mycalc.exe' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.3.4/cc1.exe -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/lib/../../include/w32api lex.yy.c -quiet -dumpbase lex.yy.c -mtune=generic -march=i686 -auxbase lex.yy -version -o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccyoqpc6.s ignoring nonexistent directory "C" ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/include" ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/lib/../../include/w32api" #include "..." search starts here: #include <...> search starts here: \MinGW\include /usr/lib/gcc/i686-pc-cygwin/4.3.4/include /usr/lib/gcc/i686-pc-cygwin/4.3.4/include-fixed /usr/include /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../include/w32api End of search list. GNU C (GCC) version 4.3.4 20090804 (release) 1 (i686-pc-cygwin) compiled by GNU C version 4.3.4 20090804 (release) 1, GMP version 4.3.1, MPFR version 2.4.1-p5. GGC heuristics: --param ggc-min-expand=45 --param ggc-min-heapsize=28600 Compiler executable checksum: f80f2b86ee4951059548b57e98331af2 COLLECT_GCC_OPTIONS='-v' '-o' 'mycalc.exe' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/as.exe -v -o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccEYJmqj.o /cygdrive/c/DOCUME~1/user-1/LOCALS~1/Temp/ccyoqpc6.s GNU assembler version 2.20.51 (i686-cygwin) using BFD version (GNU Binutils) 2.20.51.20100410
[この投稿を含むスレッドを表示] [この投稿を削除]
[1622] Re:mycalc でエラー発生
投稿者:チャチャ丸
2010/08/20 10:27:08

>管理人の前橋です。はじめまして。 >しばらくこちらを見ていなくて、反応が遅くなりましてすみません。 はじめまして。お返事ありがとうございます。 >ここ↑からダウンロードしたファイルに含まれているmake.batやmake.shを >使わず、手作業でyacc(bison?)やlex(flex?)も動かしたということでしょうか? そうですね。bisonとflexを手入力で動かしました。そこではエラーは出ないのですが、 gcc -o mycalc y.tab.c lex.yy.c の所で以下の様なエラーが表示されます。 /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0x8e): undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0xc2): undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0xed): undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0x133): undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0x168): undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccxzh81W.o:y.tab.c:(.text+0x1af): more undefined reference to `__imp__iob' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x872): undefined reference to `__errno' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x87f): undefined reference to `__errno' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x899): undefined reference to `__errno' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x1195): undefined reference to `__errno' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x1231): undefined reference to `__errno' /cygdrive/c/DOCUME~1/Temp/ccrE3OK5.o:lex.yy.c:(.text+0x16fb): undefined reference to `__errno' collect2: Id returned 1 exit status make.batを使った場合も同じ部分に「アクセスが拒否されました」と表示されます。 >具体的にどう操作されたのでしょうか。また、そこで何かエラーは出て >いないでしょうか。 特に変わった事をしたつもりはなかったのですが僕がした操作は、 mycalc.y mycalc.lをc/cygwin/home/user/に作成して >bison --yacc -dv mycalc.y >flex mycalc.l >gcc -o mycalc y.tab.c lex.yy.c と入力しただけです。 エラーが表示されたのは先ほど記述したインストールの最後に表示されるものだけです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1621] Re:mycalc でエラー発生
投稿者:774RR
2010/08/20 09:54:49

特になにか妙な設定が必要であったとか、そういうことはないはずだけど。 ttp://www.cygwin.com/ から setup.exe をダウンロードしローカルに保存 保存した setup.exe を起動 国内ミラーサイトを選択の上でダウンロード+インストールを実施 cygwin bash shell を起動し cd <to/where/mycalc/is/expanded> bison -y -dv mycalc.y flex mycalc.l gcc -o mycalc y.tab.c lex.yy.c ちなみに gcc --version と入力したときになんて表示される? ウチでは gcc (GCC) 4.3.4 20090804 (release) 1 になっている。 gcc -v -o mycalc y.tab.c lex.yy.c だと何が表示される? 結構膨大な量が出るので、先の --version が同じだった場合のみ実行すればいい。 メモを取ったりすると転記ミスが怖いので gcc -v -o mycalc y.tab.c lex.yy.c 2&>hoge.txt として hoge.txt を見たほうがいい。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1620] Re:mycalc でエラー発生
投稿者:774RR
2010/08/20 08:58:30

cygwin (1.5 も 1.7 も) のデフォルトインストール時は unix 改行。 ダウンロードページの mycalc (sjis/zip) に入っているファイルは dos 改行。 ・cygwin の bash-shell 上で make.sh を使うとこの dos 改行が邪魔して動かない。 ・cygwin の bash-shell 上で make.bat を使うと cmd.exe を呼ぶので下記参照 ・アクセサリ→コマンドプロンプトの cmd.exe 上で make.bat を使うと  cygwin 1.7 の /bin/gcc や /bin/cc が (cygwin 仕様による) symlink であるため  cmd.exe が gcc/cc を認識できず、起動失敗する といういささか困ったチャン状態なので、手打ちしたほうが早いという・・・ 改行コードの違いで動かないことが発見できる人なら改行コード変換もできるだろうけど 初めてチャレンジします!って人にそれを求めるのも酷な話で。 改行を修正しても cygwin には flex しか存在しないので lex → flex に要修正。 (/bin/yacc は /bin/bison の symlink になっているのでこっちは問題ない)
[この投稿を含むスレッドを表示] [この投稿を削除]
[1619] Re:mycalc でエラー発生
投稿者:(ぱ)こと管理人
2010/08/20 03:02:05

管理人の前橋です。はじめまして。 しばらくこちらを見ていなくて、反応が遅くなりましてすみません。 さて、チャチャ丸さんが具体的に行った操作がよくわからないのですが、 >今2章のyacc/lexで電卓を作る部分で、とりあえずmycalc.yとmycalc.lを >模写して実行したのですが、 >"cc -o mycalc y.tab.c lex.yy.c"のコマンドを行うとエラーが出ます。 ということは、 >>http://kmaebashi.com/programmer/devlang/book/download.html ここ↑からダウンロードしたファイルに含まれているmake.batやmake.shを 使わず、手作業でyacc(bison?)やlex(flex?)も動かしたということでしょうか? 具体的にどう操作されたのでしょうか。また、そこで何かエラーは出て いないでしょうか。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1618] Re:mycalc でエラー発生
投稿者:チャチャ丸
2010/08/20 01:42:54

連続投稿ですいません。 インストール時のエラーを見逃していました。 (長時間のインストールのせいでボケていたのでしょうかw) インストール終了時になかったパッケージみたいなのが表示されます。 どのサイトを選んでも同じものが表示されました。 以下 Package: No package boxes.sh exit code 2 brltty.sh exit code 1 docbook-xml-simple10.sh exit code 1 docbook-xml-simple11.sh exit code 1 docbook-xml412.sh exit code 1 docbook-xml42.sh exit code 1 docbook-xml43.sh exit code 1 docbook-xml44.sh exit code 1 docbook-xml45.sh exit code 1 docbook-xsl-ns.sh exit code 1 docbook-xsl.sh exit code 1 exim.sh exit code 1 libglade2.0.sh exit code 2 mined.sh exit code 1 です。 setupの前になにか設定が必要なのでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1617] Re:mycalc でエラー発生
投稿者:チャチャ丸
2010/08/19 23:35:43

タイトルありがとうございます。 >これは多分ライブラリを正しくリンクできていないことが原因だと思われる。 >ソースコードが原因ではなくて、まず間違いなく開発環境側の原因。 >cygwin のインストールが不足しているか、操作ミスと思われる。 今日再インストールしてみたのですが同じエラーが表示されました。 今回は出来る物は一応全部インストールしました。 またバージョンは確認したところ1.7.6でした。 同じバージョンで出来ないということは、やはり環境構築にミスがあるのかもしれないです。 再度調べて検証してみます。 >チャチャ丸氏のところの cygwin のバージョンとかインストール状態が不明なので、 >今この場でこれ以上のアドバイスはできないなぁ。 とても助かりました。ありがとうございます。
[この投稿を含むスレッドを表示] [この投稿を削除]