ベストアンサー GNU COMMON LISP 2008/01/04 22:09 GCLでWindows実行可能なexeファイルを作ることができますか。 みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー cametan_42 ベストアンサー率62% (166/266) 2008/01/08 00:50 回答No.2 >linux(Debian)の場合もGCC使うのですか。 いや、使う必要はないと思いますよ。 元々exeファイルそのものがWindowsでしか存在しないんで……。 僕もWindowsのGCL調べてみたんですけど、Windows版のGCL自体が元々minGW経由で動作しているらしく、要するにWindowsネイティブでオブジェクトコードを吐いてくれないのです。 従って、WindowsネイティブのVisual Cであるとか、ないしはBorlandのCコンパイラを媒介にしてコンパイルせざるを得ないのではないか、と思ったのです。 一方、GCL自体はGNUネイティブなんで、そう言う意味ではFreeBSDだろうとDebian GNU/Linuxだろうと、余計な操作はいらずにコンパイルしてそのままオブジェクトコードに変換してくれると思います。 Linux、ないしはFreeBSD上では、あるソース、例えばfib関数だったらGCLにソースを読み込んだ後、 ;;ここから入力 (compile 'fib) ;;ここまで とすればオブジェクトコードへとコンパイルしてくれます。 また、ファイル丸ごとコンパイルする事も可能で、 (compile-file "ファイル名.lsp") とすればいいでしょう。 質問者 お礼 2008/01/08 16:11 ありがとうございます。 質問者 補足 2008/01/14 10:46 Windows版でVisual C++ express 2005や2008でコンパイルできますか。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) cametan_42 ベストアンサー率62% (166/266) 2008/01/07 10:25 回答No.1 GCLは使ったことあんまないんで、具体的な事は分からないんですが(大体僕はLinuxユーザー)、原理的には出来る筈です。と言うのも、GCLのコンパイル、ってのはC言語に翻訳する事を指します。 例えば、フィボナッチ数列を表す次のような関数fibをGCLで書きます。 ;;フィボナッチ数列fib。fib.lspとしてファイルを作る。 (defun fib (n) (labels ((iter (i x0 x1) (if (= i n) x0 (iter (1+ i) x1 (+ x0 x1))))) (iter 0 0 1))) ;;ここまで gcl端末上に上のソースをロードして、関数名fibを次のようにdisassembleします。 ;;こう言う風に入力する。 (disassemble 'fib) ;;ここまで。 そうすると、gclは端末上にC言語に翻訳したソースを吐き出します。 /* gclによるdisassemble。続いてアセンブリも吐き出すがそっちは無視。*/ #include "gazonk_29857_0.h" void init_code(){do_init((void *)VV);} /* function definition for FIB */ static void L1() {register object *base=vs_base; register object *sup=base+VM1; VC1 vs_check; vs_top=sup; goto TTL; TTL:; base[1]= small_fixnum(0); base[2]= small_fixnum(0); base[3]= small_fixnum(1); vs_top=(vs_base=base+1)+3; L2(base); return; } /* local function ITER */ static void L2(base0) register object *base0; { register object *base=vs_base; register object *sup=base+VM2; VC2 vs_check; {object V1; object V2; object V3; V1=(base[0]); V2=(base[1]); V3=(base[2]); vs_top=sup; goto TTL; TTL:; if(!(number_compare((V1),base0[0])==0)){ goto T5;} base[3]= (V2); vs_top=(vs_base=base+3)+1; return; goto T5; T5:; V1= one_plus((V1)); {object V4; V4= (V3); V3= number_plus((V2),(V3)); V2= (V4);} goto TTL; return; } } #( #((system::%init . #((system::mf (lisp::quote user::fib) 0) (system::debug (lisp::quote user::fib) (lisp::quote (user::n)))))) ) static void L1(); #define VC1 static void L2(); #define VC2 #define VM2 4 #define VM1 4 static void * VVi[1]={ #define Cdata VV[0] (void *)(L1) }; #define VV (VVi) /* ここまで */ 平たく言うと、このソースをテキストででも保存しておいて、Visual C辺りでコンパイルすればいいのではないか、と思います。 参考URL: http://next1.cc.it-hiroshima.ac.jp/c/chap1.html 質問者 お礼 2008/01/07 16:43 ありがとうございます。 質問者 補足 2008/01/07 22:23 linux(Debian)の場合もGCC使うのですか。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発その他(プログラミング・開発) 関連するQ&A LISPプログラムをexeにしたい UbuntuでLISPプログラムを書いています。 eclというのを使ってコンパイルすることでスタンドアロンで実行できるファイルはできました。 でもこれはLinux上で実行できるものでWindowsでは使えません。 LISPで書いたプログラムをexeファイルにしてWindows上で使う良い方法はあるでしょうか? もしWindows用のソフトを使えば簡単だと言うならWindowsを使った方法でも構いません。 common lispのコード リスト中の要素aの数をカウントするプログラムを反復で書いたのですが、実行しようとすると停止してしまいます。何が悪いのでしょうか?教えてもらえませんか? (defun dot (lst) (let ((c 0)) (do ((ls lst (cdr lst)) ((null ls) c) (if (eq 'a (car ls)) (+ c 1) (+ c 0))))) Lispの開発環境 今までLispの基本を学ぶためにUbuntuでclispを使って勉強してきました。 そろそろ自分で何かゲームのようなものを作ってみたいと思ったのですが、せっかくならWindowsに対応したexe形式のものにしたいと思いました。 ところが以下に投稿した通り http://okwave.jp/qa/q7417429.html Ubuntu上ではexe形式のものを作ることは自分の知識ではできなさそうです。 そこで今からWindows上新たに環境を作って始めようと思っています。 前質問に書いたeclでもできるかもしれませんが、Windowsでexeファイルを作ったり、ゲーム(っぽいもの)を作るにはどのような環境がおすすめでしょうか?(エディタにはemacsが良い、SLIMEが良いよなど) また、もしUbuntu上でもexe形式にコンパイルできる方法があるならそちらも教えていただきたいです。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム [common lisp]データ読み込みについて txtファイルからデータを読み込み、dataに付置したいです。 (setq data (with-open-file (in "/test.dat" :direction :input))) って可能でしょうか? また、テキストデータの中のデータの書式はどのようにすればいいですか?(テキストエディット使用) データが文章なのですが、 ("hi how are you" "hi how are you")こんな感じで大丈夫ですか? Common Lispのお仕事 人工知能のプログラミング言語 とのことですが、今までCommon Lispの求人など 見たことないですし、実際にどういった所で どれほど使われているものなのでしょうか。 common lispのプログラミングについて 色の英単語クイズをするプログラムが作りたいです。 イメージとしては =====hi!===== >ki yellow correct! >ao blue correct! >aka res wrong. >aka red correct! bye.(終了) というものです。 全部で5問あり、全ての問題が終了するとbye.と出てきたクイズが終わります。 (もし間違ってももう一回同じ問題が出ます。) これまでの成果としては、 (defun quiz () (princ "=====hi!=====") (terpri) (princ 'ao) (setq cc '((ki . yellow)(ao . blue)(aka . red) (cha . brown)(murasaki . purple))) (quiz-tr)) (defun quiz-tr () (cond ((eq cc nil) (pprint 'bye.)) (t (quiz-tr (print (cond ((eq (cdr (car (cdr cc))) (read)) 'correct!) (t 'wrong.))))))) という感じでご覧の通り、汎用性が全くないです。 末尾再帰などを使って5問まで回しながら、おのおのの問題について正誤判定していきたいのですが、非手続き型に慣れていないもので、良い案が浮かびません。 どなたかアドバイスを頂けると嬉しいです。 GNU GRUBを削除できません GNU GRUBをWindowsブートローダーに書き換えたいのですが、うまくいきません。状況は以下のようになります。 [PCの状態] GNU GRUBによってWindows Vista、Vistaの回復コンソール、OpenSUSE、OpenSUSEのfailsafeが選べる状態になっています。 [問題] (1)Windows Updateが出来ない。SP適用の際、自動再起動時にエラーが出る。エラー番号を調べるとサードパーティーのブートローダーが原因とあります。 (2)研究室内のPCで、OBの方がデュアルブート環境を構築したようなのですが、現在誰もLinuxを使っていないので、ブートが少し面倒です。また、HDDの容量もひっ迫しています。 [目標] 少なくとも上記(1)は解決したいです。 [試したこと] GNU GRUBをWindowsブートローダーに書き換えようとしました。その際、以下を試みました。 (1)GRUBから起動できるシステム回復オプションを用いてbootrec.exe /fixbootとbootrec.exe /fixmbrで修復しようとしました。しかし、まずOS選択画面に何も出てきませんでした。それを無視してコマンドプロンプトを使用したところ、fixmbrは成功したものの、fixbootで「このボリュームのファイルシステムが認識できない」とエラー出ました。なお、そのときのプロンプトの表示は「X:\windows\system32」でした。この後再起動しても状況は変わりませんでした。 (2)上記と同様の過程で、今度はコマンドプロンプトではなくスタートアップ修復を実行しました。しかし修復出来ないとエラーが出てしまいました。 (3)Vistaを通常起動してcheck diskを行ってもエラーは出ませんでした。 以上です。共用のPCなのでなるべくOS再インストール等は避けたいと思っています。宜しくお願いします。 MacでWindows or exe実行ファイルを実行 Macintoshでexe実行ファイルを実行したいのですがどうやっても出来ません。 そこでMacintoshでWindowsのエミュレーターを試したいのですが何か無料なソフトウェアはありませんか? それともMacintosh上でexe実行ファイルを実行出来る手段はあるのでしょうか? パスについて、教えてください! ファイルR684.exeをlinux環境で実行したいです。 ************************* windowsで 下記のコマンドで `C:/temp/R684.exe`; ファイルR684.exeを実行してくれますが、 *********************** linux:ファイルR684.exeの置く場所 pwdで/home/henjinで表示した場合、 コマンドで上記windowsのように実行したい場合、 パスはどうなるでしょうか? 教えてください! お願いします。 EXEの実行 Windows2000+IISで実行しています。EXEを実行して画像処理を行うことになりました。EXEそのものはテキストファイルをパラメータにします。 PHPから、このEXEを起動しないといけません。マニュアルを読んでも、EXEの実行はないのですが、出来るのでしょうか?あるとすれば、どのような方法なのでしょうか。よろしくお願いいたします。 IEのブラウザでexeファイルを実行させる方法 HTMLファイルにexeファイルのリンクをはり、exeファイルを実行させたいのですが、「開く」か「保存する」のポップアップウインドウが開いてしまいます。直接exeファイルを実行させる方法なんてないでしょうか?ちなみにそのexeファイルは次のURLです。 http://www.vector.co.jp/soft/win95/net/se206965.html Common LISPでファイルの読込・書込を行う方法は、どのようにするのでしょうか? Common LISPでファイルの読込・書込を行う方法は、どのようにするのでしょうか? 例えば、CSVファイルを読み込んで、それをLISPのS式に変換し、違うファイル名で書き出すことがしたいです。 CommonLISPおよびxyzzyで動作させたいです。 ●入力ファイル test.csv 1,中村,100 2,伊藤,80 3,駒田,70 ●出力ファイル test.lsp (setq dat '( (1 中村 100) (2 伊藤 80) (3 駒田 70) )) AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム コマンドブロンプトでexe実行状況を調べたい。 Windowsのコマンドブロンプトで、 現在のディレクトリにある。 FB.exeという実行ファイルが、 実行されているかを調べたいです。 たとえば、 tasklist /FI "IMAGENAME eq FB.exe" とすると、FB.exeが実行されているかは調べられるのですが、 他のディレクトリにある、FB.exeが実行されている場合、 その区別ができません。 現在のディレクトリにある。 FB.exeという実行ファイルが、 実行されているかを調べる方法はございますでしょうか? SQLサーバーのジョブでのexeファイル実行について教えてください。 SQLサーバーのジョブでのexeファイル実行について教えてください。 FTP転送を行うバッチ(拡張子bat)を作成しexeファイルに変換してから SQLサーバーのジョブから実行しようと思っています。 batファイルからexeファイルへの変換は WindowsのIExpressとBat_To_Exe_Converterというツールを使用しました。 SQLサーバーにジョブを作成してバッチを実行させようとしたんですが batファイルのままであれば実行できるのに、exeファイルで実行させようとすると ジョブが実行中のままになり止まってしまします。 exeファイルは直接実行させると想定の処理が実行させるので 壊れていることは無いと思います。 原因の検討がつかず困っています。 些細なことでもいいので何か教えて頂ければと思います。 宜しくお願いします。 尚、exeに変換するのはバッチファイルの中身を見せないようにする為です。 Windows EXEファイルのリリースについて Visual studio(C#)でコンパイルした、 Windows EXE実行ファイルのリリースについて質問です。 バッチシステムとしてタスクスケジューラーで起動させますが、 頻繁にシステム改修があり、都度リリースが必要です。 しかし、システム実行中にリリース(EXEファイルの上書き)を行うと、 起動中のため上書きエラーとなります。 実行中のEXEに対して、 次回の実行分から最新のシステム改修を反映させるには、 どのようにしたら良いでしょうか? 以下私の案がございますが、スマートではありませんし、 実行開始に時間がかかるデメリットがございます。 他にスマートな案はございますでしょうか? 起動に関するフレームワークなどあるのでしょうか。 <案> 1.処理開始時に本体EXEファイルをコピーして実行版EXEファイルを作成する(同一のEXEファイル) 2.実行版EXEファイルを起動する 3.実行中でも本体EXEファイルは上書き可能なため、本体EXEファイルに対してリリース(EXEファイルの上書き)を行う MATLAB から exe ファイルの実行について こんにちは。 MATLAB 初心者です。 環境は Windows XP SP3、MATLAB R2009b です。 MATLAB から exe ファイルを「引数付き」実行したいのですが、可能なのでしょうか? open で exe ファイルやその他ファイルを開けることは分かったのですが、「引数付きでの exe ファイル実行」については分かりませんでした。 申し訳ないですが、ご教授ください。 実行中の実行ファイルの上書き 実行中の実行ファイル(EXE)はなぜ上書きできないのでしょうか。 上書きする方法はありませんでしょうか。windowsです。 BATファイルの作成方法について 初めてBATを作成する事になったのですが、こんなBATを作りたいのですがイマイチ分からず、 例えば: C:\にある○○のファイルと、 C:\WINDOWSにある○○のファイルを比較して、 もし、なければ、 C:\data\○○.exeを実行する もし、あれば C:\data\○○.exeを削除する 更に分かりましたら、 このファイルを実行する際に、 Windows修正プログラムに含まれている、update.exeのコマンドスイッチも付加できればありがたいのですが、 お分かりになる方どうか教えて下さい。 宜しくお願いします。 exeファイルが開かないのですが WINDOWS XPで「フォルダオプション」「ファイルの種類」「新規」でファイルの拡張子「exe」を追加後に削除したところ、すべてのexeファイルが実行できなくなってしまいました。 ファイル名を指定して実行でも、「このファイルを開けません」となります。 対処法がありましたら、ご教授お願いします。 実行ファイルの実行準備 windowsの実行ファイル(主に.exe)を実行するときの動作を知りたいのですが、そのプログラムのソースコードは公開されているのでしょうか? また、実行ファイルをロードする詳細情報はどこかにありませんか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。
補足
Windows版でVisual C++ express 2005や2008でコンパイルできますか。