背景: 工作上需要使用MFC/ATL/COM等开发知识,笔记本上只有Linux,VirtualBox上安装Windows没成功,只得曲线救国,通过Wine在Linux平台上学习Windows平台开发知识。Wine是一个有着十多年历史的开源工程,它在Unix平台构建了一个Windows API模拟层以运行Windows程序(而不是像虚拟软件那样模拟硬件资源)。Wine不仅提供了在Linux平台运行Windows程序的工具,还提供了开发库WineLib,这使得在Unix平台开发Windows程序成为可能。这种开发方式是“不实用”的,但对我来说这很重要(也很COOL),因为除了工作的必要,实在不想接触Windows。
首先还是上我的Makefile,一些简单的步骤也包含在这个文件中:
###########################################################################################
# Makefile for MFC Application with wineLib on Linux(Ubuntu 9.10)
# *****************************************************************************************
# * Previous steps:
# * 1. Install wine 1.1.35
# *wgethttp://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.35.tar.bz2
# *unzip && ./configure && install
# *
# *Q: configure: error: FreeType development files not found.
# * A:sudo apt-get installlibfreetype6-dev
# *
# * 2. Copy all the files of Vistual Studio 6 to wine directory.
# *
# * Notice:
# * When you make with this Makefile at first time,there are some errors about "err:module". Dont worry,make again,you will be success.
# *
# * Creator: think.hy@gmail.com
# * Date:2010年 01月 03日 星期日 17:20:53 CST
# ****************************************************************************************
WINE = /home/thinkhy/work/wine/wine-1.1.35/wine
LINK = LINK.EXE
LFLAG = /nologo /subsystem:windows #/OPT:REF
CC = CL.EXE
CFLAG =/subsystem:windows/MT #/c /nologo /GX /MT /D "_AFXDLL"
INCLUDE = /I. /I/home/thinkhy/.wine/drive_c/Program/ Files/Microsof/ Visual/ Studio/VC98/Include /
/I/home/thinkhy/.wine/drive_c/Program/ Files/Microsof/ Visual/ Studio/VC98/MFC/Include
LIB = /LIBPATH:/home/thinkhy/.wine/drive_c/Program/ Files/Microsof/ Visual/ Studio/VC98/Lib /LIBPATH:/home/thinkhy/.wine/drive_c/Program/ Files/Microsof/ Visual/ Studio/VC98/MFC/Lib
RES =
SRC = ./test.cpp
OBJ = ./test.obj
OUTFILE = test.exe
OUTPUT = /OUT:$(OUTFILE)
all :link
$(OBJ) :$(SRC)
$(WINE)$(CC)$<$(CFLAG) $(INCLUDE)
link :$(OBJ)
$(WINE)$(LINK)$(LFLAG)$(LIB)$(OBJ)$(RES)$(OUTPUT)
clean:
-rm $(OUTPUT)
touch $(SRC)
###########################################################################################
// 测试代码如下:
#include "AFXWIN.H"
classMFC_Tutorial_Window :publicCFrameWnd
{
public:
MFC_Tutorial_Window()
{
Create(NULL,"MFC Tutorial Part 1 CoderSource Window");
}
};
classMyApp :publicCWinApp
{
MFC_Tutorial_Window *wnd;
public:
BOOL InitInstance()
{
wnd = newMFC_Tutorial_Window();
m_pMainWnd = wnd;
m_pMainWnd->ShowWindow(1);
return1;
}
CDialog cd;
};
MyApp theApp;
make 之后输出可执行文件test.exe,在Shell运行程序 ./test.exe,效果如下(一个空窗口):
参考资料:
1. [原创]在linux系统中编写windows程序并连接成二进制文件(http://forum.ubuntu.org.cn/viewtopic.php?f=88&t=96015&view=next)
2. 使用 wine 进行 WIN32/MFC 开发 (http://shuizhuyuanluo.blog.163.com/blog/static/77818120091030113223845/)
分享到:
相关推荐
1.【报告】分为四章进行展示,包括摘要、参考文献,正文部分为包括第一个编译程序、早期编译程序开发、目前编译程序开发,以及总结。 2.【PPT】使用时间轴和树状流程进行展示,包括第一个编译程序、早期编译程序开发...
第1部分,介绍了Windows及MFC编程的主要原则,以一个示例程序"Hello,MFC"开始,然后逐一简要讲解菜单、控件、对话框以及其他用于组建应用程序的模块。第2部分,在第1部分的基础之上,对文档视图结构做详细讲解,...
XBuildStudio© 是运行在Windows平台上的,专为LINUX/UNIX平台软件开发的可视化工具,类似于Visual C++ Studio开发环境。该工具能有效提升您在LINUX环境的开发效率,更快地缩短开发周期。 特性: 支持C/C++关键字...
windows下面编译linux-0.11内核 MinGW32 Bochs
apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功
windows平台nginx编译nginx-http-flv-module,可直接运行,基于nginx-1.17.10编译
一个完整的MFC工程程序,里面包括了欢迎画面,背景图片,单文档多视图显示,文件新建保存功能 ,适合有一定经验者,通过对这个项目的掌握,能够对MFC开发项目起到很大的帮组作用,VC6.0编译完成
arm-linux-gcc编译选项,包括相关参数的详细说明等等。
第1部分,介绍了Windows及MFC编程的主要原则,以一个示例程序"Hello,MFC"开始,然后逐一简要讲解菜单、控件、对话框以及其他用于组建应用程序的模块。第2部分,在第1部分的基础之上,对文档视图结构做详细讲解,...
第1部分,介绍了Windows及MFC编程的主要原则,以一个示例程序"Hello,MFC"开始,然后逐一简要讲解菜单、控件、对话框以及其他用于组建应用程序的模块。第2部分,在第1部分的基础之上,对文档视图结构做详细讲解,...
第一个和最后一个错误还好理解,但中间那个错误那就莫明其妙了,因为Linux 0.11根本没有这个函数,在gcc的编译选项里也有-nostdinc .有一个解释是main函数不是一个普通的函数,MinGW gcc会对它作特殊的处理.解决的办法...
在原代码基础上修改部分代码1. 增加 arm-gcc.toolchain.cmake 文件set(CMAKE_C_COMPILER "/usr/bin/arm-
Makefile文件arm-none-linux-gnueabi-gcc编译文件,linux下多个.C文件统一使用make文件进行编译
网上大部分arm-linnux-gcc编译gtk,其实介绍的是directfb+gtk移植。我提供的是gtk 应用程序的arm-linux-gcc编译方法。
arm-xilinx-linux-gnueabi 交叉编译工具链。可在编译ZED Board等其他使用ZYNQ芯片的系统的内核时使用
填平了无数大坑后终于实现ubuntu20.04+Qt5.12.12+aarch64-linux-gnu交叉编译平台设置。详细记录了安装的全部过程,补充了全部所需的库,整个编译过程中无任何错误报出,亲测可用。
在 centos 7 下使用 gcc 4.8.5 + cmake 3.16.9 编译,包含 bin, include, lib, lib64, share 五个目录,可以直接在 linux C++ 程序中引用。 因为 grpc 编译比较麻烦,且依赖项较多,故而分享一下编译后的版本,本人...
带硬件浮点的ARM9使用的交叉编译工具链arm-vfp-linux-gnu-4.3.2的源码包和安装方法说明。可以用于对LPC3250的交叉编译
交叉编译工具。用于进行linux上搭建交叉编译环境。该版本为2010.09版。解压后将bin目录放入PATH即可使用。
arm-cortex_a8-linux-gnueabi 交叉编译工具链arm-cortex_a8-linux-gnueabi 交叉编译工具链arm-cortex_a8-linux-gnueabi 交叉编译工具链