假设我在 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 操作系统上运行。这让我感到惊讶,因为我使用的只是普通的旧 c++ 和 FLTK,它们是跨平台的。
所以,我的问题是,我将如何获取此代码并以可以在 Linux 操作系统和 Mac 操作系统上运行的方式对其进行编译?或者,是否有可能保留相同的代码并以不同的方式编译它,以便它可以在另一个操作系统上运行?如果不可能,我必须改变什么?
PS。代码非常简单,但如果你想知道#define WIN32 是否存在,因为没有它,编译器会因为缺少头文件而吓坏了,比如“X/X11.h”