在Mac上为Windows编译交叉编译

时间:2014-10-17 17:17:17

标签: compilation g++ cross-platform fltk

我正在运行Mac OSX 10.8.5的2012 MacBook pro上使用c ++中的FLTK构建项目,并使用命令行中的i686-apple-darwin11-llvm-g ++ - 4.2进行编译。

理想情况下,我想在Windows中交叉编译而不在Windows中学习VS,安装所有依赖项等。所以我对从mac交叉编译windows感兴趣。

我找到了这个http://crossgcc.rts-software.org/doku.php?id=start并下载了一个自动安装的软件包。然后我下载了示例源代码以查看它是否有效,它只是给了我一堆错误。

查看make文件,它指的是我根本没有的目录。例如,提供的make文件读取

#------------------------------------------------------------------------------*
#                                                                              *
# C + +    H E L L O W O R L D    F O R    M I N G W 3 2    O N    M A C O S X *
#                                                                            *
#   Updated for Release 2                                                    *
#                                                                              *
#------------------------------------------------------------------------------*

TOOL_DIR := /usr/local/i386-mingw32-3.4.5/bin

SOURCES := hello_world.cpp

OBJECTS_DIR := objects

EXECUTABLE := hello_world_in_cpp.exe

ALL_OBJECT_FILES := $(patsubst %, $(OBJECTS_DIR)/%.o, $(SOURCES))

all:$(OBJECTS_DIR) $(EXECUTABLE)

#--- Make object dir
$(OBJECTS_DIR):
    mkdir $(OBJECTS_DIR)

#--- C++ compile : use gcc
$(OBJECTS_DIR)/%.cpp.o:%.cpp
    $(TOOL_DIR)/i386-mingw32-gcc -c $< -o $@

#--- C++ link : use g++
$(EXECUTABLE):$(ALL_OBJECT_FILES)
    $(TOOL_DIR)/i386-mingw32-g++ $< -o $@
    $(TOOL_DIR)/i386-mingw32-strip --strip-all $@

clean:
    rm -f $(EXECUTABLE)
    rm -Rf $(OBJECTS_DIR)/

查看我/ usr /目录中的内容(包括其他内容)

/usr/local/gcc-4.8.0-qt-4.8.4-for-mingw32 
    contents.txt
    win32-gcc/
        bin/
            i586-mingw32-g++
            i586-mingw32-gcc
        i586-mingw32/
            bin/
                g++
                gcc
    win32-qt/

通过反复试验我只是从命令行运行

/usr/local/gcc-4.8.0-qt-4.8.4-for-mingw32/win32-gcc/bin/i586-mingw32-g++ hello_world.cpp 

捆绑的示例源代码,至少可以编译并生成'a.exe'。

我认为这就是我应该做的事情?但我不确定。

接下来我需要编译我的FLTK项目。按照惯例进行编译,但用/usr/local/gcc-4.8.0-qt-4.8.4-for-mingw32/win32-gcc/bin/i586-mingw32-g++

替换g ++

要做到这一点,我使用fltk-config脚本基本上是等于使用命令进行编译

g++ -I/usr/local/include -I/usr/local/include/FL/images -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT

/usr/local/lib/libfltk_images.a /usr/local/lib/libfltk_png.a -lz /usr/local/lib/libfltk_jpeg.a /usr/local/lib/libfltk_gl.a-framework AGL -framework OpenGL -framework ApplicationServices /usr/local/lib/libfltk_forms.a /usr/local/lib/libfltk.a -lpthread -framework Cocoa main.cpp -o go

除了上面的内容,我还链接到一些静态的.a库。

然而,当我使用i586-mingw32-g ++编译器执行上述操作时,我发现以下错误,并且不知道如何绕过它们(如果确实可能的话)

i586-mingw32-g++: error: AGL: No such file or directory
i586-mingw32-g++: error: OpenGL: No such file or directory
i586-mingw32-g++: error: ApplicationServices: No such file or directory
i586-mingw32-g++: error: Cocoa: No such file or directory
i586-mingw32-g++: error: unrecognized command line option ‘-framework’
i586-mingw32-g++: error: unrecognized command line option ‘-framework’
i586-mingw32-g++: error: unrecognized command line option ‘-framework’
i586-mingw32-g++: error: unrecognized command line option ‘-framework’

有什么想法吗?提前谢谢。

0 个答案:

没有答案