MSVC++ 2010 に単純なプロジェクトがあるとします。そこにあるのは main.cpp だけで、そのコードは次のような単純なものです。
// include macros
#define WIN32
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/fl_ask.H>
// main function
int main()
{
// init window
Fl_Window *window = new Fl_Window(250, 250, "Derp Window");
// show window, run window
window->show();
int result = Fl::run();
fl_message("Goodbye...");
// release pointers
delete window;
// return
return result;
}
Windows 互換バージョンを作成するのは簡単です。モードをリリースに設定してビルドするだけです。しかし、最近わかったのですが、生成された .exe ファイルは Mac または Linux OS では動作しません。私が使っているのは単純な古い c++ とクロスプラットフォームの FLTK だけなので、これは私を驚かせました。
それで、私の質問は、どうすればこのコードを取得して、Linux OS と Mac OS で動作するようにコンパイルできるでしょうか? または、同じコードを保持し、別の方法でコンパイルして、別の OS で動作することさえ可能ですか? それが不可能な場合、何を変更する必要がありますか?
PS。コードは非常に単純ですが、#define WIN32 が存在することに疑問を持っている場合は、それがないと、コンパイラが "X/X11.h" のようなヘッダー ファイルの欠落を心配します。