プロが教える店舗&オフィスのセキュリティ対策術

Cで書かれたWindowsで動くコマンドラインのプログラムがあります。
テキストファイルの入出力するだけの簡単なプログラムです
MAC用の実行ファイルをWindowsあるいはLinux上で作成(いわゆるクロスコンパイルを実行)したいのですが、具体的な方法、ツールがわかりません。
よろしくお願いします

A 回答 (3件)

CMakeを使うのかな?



Cross Compiling With CMake:
https://cmake.org/cmake/help/book/mastering-cmak …

外していたらゴメン。
あと、コンパイラはminGW辺りで揃えておけばいいような気がする。
知らんが。
(少なくとも、LinuxでminGWを使えばWindowsで動くexecutableは簡単に作れたような・・・、ただ、gcc辺りだと素のママでMacでも使えるんで、敷居はMacの方が低い?)
    • good
    • 0
この回答へのお礼

回答ありがとうございます
やっぱ、Linux で CMake ですかね。
具体的なCMake のパラメタ、なんと書いたらよいのかしら?

>ただ、gcc辺りだと素のママでMacでも使えるんで、敷居はMacの方が低い?
Linuxのgccでコンパイルした実行ファイルがそのまま、Macで使えるということでしょうか?それなら嬉しいです。

お礼日時:2024/02/05 18:32

まず、Macがないんで具体的な事は分からんですけどね。


ただ、「クロスコンパイル」と言うより、単にMacがターゲットな場合、GUIを考慮しなきゃLinux -> Mac と言う単純なコンパイル済みのCLIのプログラムだったら持っていったり持ってきたり、ってのはWindowsに比べると容易なんじゃないかしらん。
なんせ、MacのGUIは厄介なんだけど、単純にOSとして見た場合、Linuxと大差がないんでね・・・・・・(両者ともUNIX互換)。
仲間はずれはWindowsだけ、なんだけど、不思議な事にLinuxとWindowsの方が「同じソフトウェアを使える」ケースの方が多いんですが(邪魔してるのはMacのGUIだ・笑)。

> Linuxのgccでコンパイルした実行ファイルがそのまま、Macで使えるということでしょうか?それなら嬉しいです。

「可能性は高い」。試せるなら試してみた方がいいと思う(繰り返すけど、Macを持ってないんで具体的な事はわかりません)。
また、ターゲットがあくまでMacのみ、ってぇのならgccよかclang使った方がいいかもしんない。
clangもLinuxで使えるけど、元々はMac生まれのコンパイラなんで。

clang:
https://clang.llvm.org

Cross-compilation using Clang(コンパイラオプション(Target Triple)で、ターゲットとなるプラットフォームを切り替える事が可能、と言うような事が書いてある):
https://clang.llvm.org/docs/CrossCompilation.html

> 具体的なCMake のパラメタ、なんと書いたらよいのかしら?

基本的にはtoolchain fileのtarget operating systemをこう書くだけでいいんじゃないのかしらん。

# the name of the target operating system
set(CMAKE_SYSTEM_NAME MacOSX)

あるいはこう書く、とか。

# the name of the target operating system
set(CMAKE_SYSTEM_NAME Darwin)

DarwinってのがMac OS Xの根幹部分?ちとマニュアルにMac向けにコンパイルする例が書いてないんで何とも、だけど・・・・・・。
いずれにせよ、あとはgccなりclangなりへのパスを記述すれば大丈夫なんじゃないかしらん。
知らんけど(笑)。
ゴメンね、手元にMacがあればもうちょっと具体的な事が書けるかもしんないんだけど。
    • good
    • 0

できないのでは?

    • good
    • 0
この回答へのお礼

つらい・・・

お礼日時:2024/02/05 18:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A