No.2ベストアンサー
- 回答日時:
VCで普通にコンパイルをすると、実際にはcl.exeというコンパイラが使われます。
これは、Windows用です。但し、VCのIDEは、使うコンパイラを設定することができます。
例えばLinux用のクロスコンパイラを用意して(VC自体には付属してません)使えばOKです。
通常のコンパイラは、自分の動作環境と出力オブジェクトの動作環境が同一ですが、
クロスコンパイラは、自分とは違う動作環境用(ここではLinux)のオブジェクトを作ります。
これは、Linuxで普通のコンパイラを使った場合と、同様なexeを作れるということです。
但し、作れるというだけで、Windows ではそのまま動かないものになります。
# 提示の条件だけだと、Linux サーバ上で Windows のエミュレーション環境が動いてる可能性もありますが…。
>例えばLinux用のクロスコンパイラを用意して(VC自体には付属してません)使えばOKです。
ということは、自前でgccといったコンパイラをVC側に持ってきて、それを使うようにVCで設定する。といった解釈でいいのでしょうか?
お話を聞いているうちに、自分でも試したくなってきました。現在は具体的な方法をWebで探しいます。
もし、ご存知でしたら教えてください。
ありがとうございました。
No.3
- 回答日時:
簡単なたとえでは
プレイステーションなどのゲームはPC上で作成しますが
PC上では(通常)動きません
PCで作成→CD作成→ゲーム機で動作
をさせないと(通常)動きません。
ゲーム機本体でゲームを作成することは(基本的に)出来ません。
(通常)と付けたのは、PC上でゲーム機のエミュレーション機能があれば動作します。
エミュレーションは仮想的に動作させることです。
詳しくは「エミュレーション」で検索すればわかると思います。
ありがとうございました
エミュレーション機能は利用しておらず、
あくまで実機での実行です。
教えてくださった例だと、クロスコンパイルの必要性を感じますが、Windows-Linux間となると、いまいち「なんで?」と思ったのがきっかけでした。
No.1
- 回答日時:
クロスコンパイルはターゲット用のバイナリを生成できる。
普通windows用のコンパイラは
int main(){printf("hello world\n");}
のような人が判るコードをCPUが理解できる命令コード群(機械語)に置き換える作業をする。
クロスコンパイラはこの機械語のテーブルとでも言おうか、ターゲットPC用のテーブルで命令コード群を生成できる。
(だからクロスコンパイラとして作成しておかないとできない)
クロスコンパイラが存在する事によって、負荷が高く直接コンパイルするのが困難な環境用へのプログラムのコンパイルがより快適(正しくはリソースが空いている)なPCで行う事ができるようになる。
極端な話、windowsでMacOSX用のバイナリを吐かせる事もできなくもない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++でアボート(Abort)で処理が...
-
io.hをincludeするとそのような...
-
複数のソースファイルのコンパ...
-
ccコマンドの使い方
-
Cで作ったプログラムにしたいの...
-
0除算して、落ちるプログラムと...
-
g++ だと正常動作 ・ bcc32 だ...
-
PC-9801用のフリーな高級言語を...
-
【エラー】Cpadで初めてコンパイル
-
fortranでのNaNについて
-
65536は2の何乗なのでしょうか?
-
Excelで4096点以上のFFTの方法
-
モジュロ
-
バッチファイルでウインドウを...
-
あるプログラムのコマンドライ...
-
クリックするとページ内で説明...
-
バッチ、vbs等でのソフトウェア...
-
常駐プログラム
-
powered byの表記について
-
バッチファイルでUSB挿入時に実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0除算して、落ちるプログラムと...
-
io.hをincludeするとそのような...
-
C++ で、「)」が必要 というエ...
-
C++でアボート(Abort)で処理が...
-
Visual C++とVisual C++.NETの違い
-
変数(関数)名の頭に_
-
fortranでのNaNについて
-
コンパイルできない
-
C++の Unhandled Exceptionにつ...
-
コンパイラの制限 : ヒープの領...
-
PICマイコンによる乱数の表示に...
-
CPUが16bitでも32bitOSでコンパ...
-
関数の戻り値による変数の初期化
-
Delphiの逆コンパイル
-
どのプログラミング言語ででき...
-
コンパイラフラグ(compiler fla...
-
コンパイラについて
-
FORTRAN→Cに翻訳
-
Eclipseの環境設定について
-
バイナリファイルとソースコー...
おすすめ情報