谁给个windows下能用的:scite+mingw+wxwidgts的makefile

manmount 2011-04-27 03:52:54
因为linux的makefile和windows下用的差别很大。我一直用文本写程序,不用IDE。所以只要makefile。我好在windows平台下用scite编辑器编辑了源码,再在console里面敲mingw32-make编译。

我写的能编译但是链接wxwidgts库的时候出错,刷了一大屏错误。环境变量都对,build 上千行当console 程序都成功。
一链接到wxwidgets库就不行了。注意:要在windows平台下能通过mingw32-make编译成二进制程序的makefile.



#makefile for MinGW Hello World Test

OBJ_LIST=$(subst .cpp,.o,$(wildcard *.cpp))
wxInclude=D:\wxWidgets-2.8.12\include \
D:\wxWidgets-2.8.12\build\msw\gcc_mswu \
D:\wxWidgets-2.8.12\contrib\include
wxLib=D:\wxWidgets-2.8.12\lib

CC=g++
AR=ar
LD=ld

RM=del
#RM=rm -rf
MV=MOVE /Y
CP=copy
C++FLAGS = -g -enable-auto-import \
-Wno-deprecated \
-Wall -Werror \
-I $(wxInclude) \
-L $(wxLib)

TARGET = minimal.exe

all: depend.dep $(TARGET)

$(TARGET): $(OBJ_LIST)
$(CC) -o $(TARGET) $(OBJ_LIST) -mwindows
# $(TARGET)

clean:
$(RM) *.o *.obj *.tmp *.exe *.dep *.s

depend.dep:
$(CC) -M $(C++FLAGS) $(wildcard *.cpp)> $@

-include depend.*

.cpp.o:
$(CXX) -c $(C++FLAGS) $<

%.dir:%
$(MAKE) -C $< $(DEBUG_MAKE)




//name: minimal.cpp
//purpose Minimal wx sample

#include "wx/wx.h"

class MyApp:public wxApp
{
public:

virtual bool OnInit();

};

class MyFrame:public wxFrame
{
public:

MyFrame(const wxString& title);

void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);

private:

DECLARE_EVENT_TABLE()
};

DECLARE_APP(MyApp)

//(*AppHeaders
#include <wx/image.h>
//*)

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
//(*AppInitialize
bool wxsOK = true;
wxInitAllImageHandlers();
//*)
return wxsOK;

MyFrame *frame=new MyFrame(wxT("Minimal wxWidgets App"));

frame->Show(true);

return true;

}

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
END_EVENT_TABLE()

void MyFrame::OnAbout(wxCommandEvent& event)
{
wxString msg;
msg.Printf(wxT("Hello and welcome to %s"), wxVERSION_STRING);

wxMessageBox(msg, wxT("About_Minimal"), wxOK|wxICON_INFORMATION, this);

}

void MyFrame::OnQuit(wxCommandEvent& event)
{
Close();
}

#include "mondrian.xpm"

MyFrame::MyFrame(const wxString& title):wxFrame(NULL, wxID_ANY, title)
{
SetIcon(wxIcon(mondrian_xpm));

wxMenu *fileMenu=new wxMenu;

wxMenu *helpMenu=new wxMenu;

helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"), wxT("Show about dialog"));

fileMenu->Append(wxID_EXIT, wxT("E&xit...\tAlt-X"), wxT("Quit this program"));

wxMenuBar *menuBar=new wxMenuBar();
menuBar->Append(fileMenu, wxT("&File"));
menuBar->Append(helpMenu, wxT("&Help"));

SetMenuBar(menuBar);

CreateStatusBar(2);

SetStatusText(wxT("Welcome to wxWidgets!"));
}


...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ollydbg23 2011-04-27
  • 打赏
  • 举报
回复
直接去wxWidgets按照目录下面的msw下面的sample下面找makefile吧,很多很多。而且针对不同编译器和make的(包括针对mingw32-make的),拿过来就能参考。
xunxun 2011-04-27
  • 打赏
  • 举报
回复
另外,lz在makefile里也没链接wx库啊
xunxun 2011-04-27
  • 打赏
  • 举报
回复
不知道lz链接的wx的什么库
如果是release unicode 的 mono dll的话
编译开关加入以下宏
__GNUWIN32__
__WXMSW__
WXUSINGDLL
wxUSE_UNICODE

即:-D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧