Code::Blocks Forums

User forums => Nightly builds => Topic started by: killerbot on April 16, 2006, 07:46:11 pm

Title: The 16 april 2006 build will NOT be out.
Post by: killerbot on April 16, 2006, 07:46:11 pm
No commits occured. Tomorrow's another day ;-)
Title: Re: The 16 april 2006 build will NOT be out.
Post by: alanwong on April 17, 2006, 05:20:42 am
Why I can't succeed compile for wxWidgets application .
-------------- Build: default in test ---------------
mingw32-g++.exe -pipe -mthreads -Winvalid-pch -include "wx_pch.h" -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -DUSE_PCH  -IE:\TEST\test\include -IE:\TEST\test\lib\gcc_dll\mswu -IE:\TEST\test\contrib\include -I"C:\Program Files\CodeBlocks\include" -I"C:\Program Files\CodeBlocks\wxWidgetsDLL\include"  -c wx_pch.h -o wx_pch.h.gch\default_wx_pch.h.gch
mingw32-g++.exe -pipe -mthreads -Winvalid-pch -include "wx_pch.h" -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -DUSE_PCH  -IE:\TEST\test\include -IE:\TEST\test\lib\gcc_dll\mswu -IE:\TEST\test\contrib\include -I"C:\Program Files\CodeBlocks\include" -I"C:\Program Files\CodeBlocks\wxWidgetsDLL\include"  -c main.cpp -o .objs\main.o
main.cpp:91:1: converting to execution character set: Illegal byte sequence
main.cpp:108:1: converting to execution character set: Illegal byte sequence
Process terminated with status 1 (0 minutes, 21 seconds)
2 errors, 0 warnings
 
 
my wxWidgets is compiled with unicode version.

main.cpp file:

#include <wx/wxprec.h>

#ifdef __BORLANDC__
    #pragma hdrstop
#endif

#ifndef WX_PRECOMP
    #include <wx/wx.h>
#endif

//helper functions
enum wxbuildinfoformat {
    short_f, long_f };

wxString wxbuildinfo(wxbuildinfoformat format)
{
    wxString wxbuild(wxVERSION_STRING);

    if (format == long_f )
    {
#if defined(__WXMSW__)
        wxbuild << _T("-Windows");
#elif defined(__UNIX__)
        wxbuild << _T("-Linux");
#endif

#if wxUSE_UNICODE
        wxbuild << _T("-unicode build");
#else
        wxbuild << _T("-ANSI build");
#endif // wxUSE_UNICODE
    }

    return wxbuild;
}

//wxWidgets Application
class MyApp : public wxApp
{
public:
    virtual bool OnInit();
};
IMPLEMENT_APP(MyApp);

class MyFrame: public wxFrame
{
public:
    MyFrame(wxFrame *frame, const wxString& title);
    ~MyFrame();
private:
    void OnQuit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
    DECLARE_EVENT_TABLE();
};

bool MyApp::OnInit()
{
    MyFrame* frame = new MyFrame(0L, _("wxWidgets Application Template"));
    frame->Show();
    return true;
}

int idMenuQuit = wxNewId();
int idMenuAbout = wxNewId();

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    EVT_MENU(idMenuQuit, MyFrame::OnQuit)
    EVT_MENU(idMenuAbout, MyFrame::OnAbout)
END_EVENT_TABLE()

MyFrame::MyFrame(wxFrame *frame, const wxString& title)
        : wxFrame(frame, -1, title)
{
#if wxUSE_MENUS
    // create a menu bar
    wxMenuBar* mbar = new wxMenuBar();
    wxMenu* fileMenu = new wxMenu(_T(""));
    fileMenu->Append(idMenuQuit, _("&Quit\tAlt-F4"), _("Quit the application"));
    mbar->Append(fileMenu, _("&File"));

    wxMenu* helpMenu = new wxMenu(_T(""));
    helpMenu->Append(idMenuAbout, _("&About\tF1"), _("Show info about this application"));
    mbar->Append(helpMenu, _("&Help"));

    SetMenuBar(mbar);
#endif // wxUSE_MENUS

#if wxUSE_STATUSBAR
    // create a status bar with some information about the used wxWidgets version
    CreateStatusBar(2);
    SetStatusText(_("Hello Code::Blocks user !王光平"),0);
    SetStatusText(wxbuildinfo(short_f),1);
#endif // wxUSE_STATUSBAR
}

MyFrame::~MyFrame()
{
}

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

void MyFrame::OnAbout(wxCommandEvent& event)
{
    wxString msg = wxbuildinfo(long_f);
    wxMessageBox(msg, _("Welcome 王光平"));
}

 
wx_pch.h file:
#ifndef WX_PCH_H_INCLUDED
#define WX_PCH_H_INCLUDED

#if ( defined(USE_PCH) && !defined(WX_PRECOMP) )
    #define WX_PRECOMP
#endif // USE_PCH

// basic wxWidgets headers
#include <wx/wxprec.h>

#ifdef __BORLANDC__
   #pragma hdrstop
#endif

#ifndef WX_PRECOMP
   #include <wx/wx.h>
#endif

#ifdef USE_PCH
   // put here all your rarely-changing header files
#endif // USE_PCH

#endif // WX_PCH_H_INCLUDED
Title: Re: The 16 april 2006 build will NOT be out.
Post by: Conan Kudo on April 17, 2006, 06:52:42 am
What version of Code::Blocks are you using? Are you using official RC2-installer final, are you using April 1st installer-RC2 Unicode, or are you using a nightly build ontop of either installer? Specify please!
Title: Re: The 16 april 2006 build will NOT be out.
Post by: takeshimiya on April 17, 2006, 07:30:00 am
Why I can't succeed compile for wxWidgets application .

Quote
main.cpp:91:1: converting to execution character set: Illegal byte sequence
main.cpp:108:1: converting to execution character set: Illegal byte sequence

That is because you have chinese characters (hanzis) on line 91 and 108. I don't know if GCC supports source files encoded in unicode (and if it supports, what type of encodings it supports), but certainly your actual configuration doesn't.

You can solve it in multiple ways, these are one of them:
1) Investigate if GCC supports unicode for source files, and if so, what encoding.
2) Use another compiler. For example, MSVC latest versions support UTF-8 and UTF-16 source files.
3) Don't use any unicode chars (use only ASCII chars) in your source files, and write all texts in plain english.
This is the most common way, and you will not loose unicode at all, because you can later translate the english texts to any language at runtime, using gettext catalogs. For creating the catalogs, here is a good GUI: http://www.poedit.org

Regards,
Takeshi Miya
Title: Re: The 16 april 2006 build will NOT be out.
Post by: alanwong on April 17, 2006, 08:11:48 am
What version of Code::Blocks are you using? Are you using official RC2-installer final, are you using April 1st installer-RC2 Unicode, or are you using a nightly build ontop of either installer? Specify please!

the code::blocks is  The 16 april 2006 build.
Title: Re: The 16 april 2006 build will NOT be out.
Post by: alanwong on April 17, 2006, 08:17:49 am
Why I can't succeed compile for wxWidgets application .

Quote
main.cpp:91:1: converting to execution character set: Illegal byte sequence
main.cpp:108:1: converting to execution character set: Illegal byte sequence

That is because you have chinese characters (hanzis) on line 91 and 108. I don't know if GCC supports source files encoded in unicode (and if it supports, what type of encodings it supports), but certainly your actual configuration doesn't.

You can solve it in multiple ways, these are one of them:
1) Investigate if GCC supports unicode for source files, and if so, what encoding.
2) Use another compiler. For example, MSVC latest versions support UTF-8 and UTF-16 source files.
3) Don't use any unicode chars (use only ASCII chars) in your source files, and write all texts in plain english.
This is the most common way, and you will not loose unicode at all, because you can later translate the english texts to any language at runtime, using gettext catalogs. For creating the catalogs, here is a good GUI: http://www.poedit.org

Regards,
Takeshi Miya


thank you, Takeshi Miya

I think that GCC supports unicode for source files (with GCC3.4.5), because it is succeed compiled as follows:
#include <iostream>
using namespace std;
int ()
{
  cout<<"中国"<<endl;
  return 0;
}
Title: Re: The 16 april 2006 build will NOT be out.
Post by: alanwong on April 17, 2006, 08:23:24 am
Why I can't succeed compile for wxWidgets application .

Quote
main.cpp:91:1: converting to execution character set: Illegal byte sequence
main.cpp:108:1: converting to execution character set: Illegal byte sequence

That is because you have chinese characters (hanzis) on line 91 and 108. I don't know if GCC supports source files encoded in unicode (and if it supports, what type of encodings it supports), but certainly your actual configuration doesn't.

You can solve it in multiple ways, these are one of them:
1) Investigate if GCC supports unicode for source files, and if so, what encoding.
2) Use another compiler. For example, MSVC latest versions support UTF-8 and UTF-16 source files.
3) Don't use any unicode chars (use only ASCII chars) in your source files, and write all texts in plain english.
This is the most common way, and you will not loose unicode at all, because you can later translate the english texts to any language at runtime, using gettext catalogs. For creating the catalogs, here is a good GUI: http://www.poedit.org

Regards,
Takeshi Miya


thank you, Takeshi Miya

I think that GCC supports unicode for source files (with GCC3.4.5), because it is succeed compiled as follows:
#include <iostream>
using namespace std;
int ()
{
  cout<<"中国"<<endl;
  return 0;
}


Because I don't want Use another compiler. For example, MSVC,  so I select code::blocks.

Title: Re: The 16 april 2006 build will NOT be out.
Post by: thomas on April 17, 2006, 12:27:15 pm
Why I can't succeed compile for wxWidgets application .
Thank you for being so kind as to not posting your general problems into this completely unrelated thread.
Title: Re: The 16 april 2006 build will NOT be out.
Post by: mmkider on April 17, 2006, 07:33:44 pm
sorry for thomas.

I reply this question.
you need to select ANSI-mode, because you keyin word that it is local code (GB2312)and not UNICODE.

I try compling this file between ANSI-mode and UNICODE-mode, and it's sucess with ANSI-mode.

Title: Re: The 16 april 2006 build will NOT be out.
Post by: Conan Kudo on April 18, 2006, 12:24:57 am
Where is our ANSI build?? The latest ANSI build is two weeks old! We need a new ANSI build for our Windows 9x friends! Of course, if a libunicows build is prepared instead, that is OK too....
Title: Re: The 16 april 2006 build will NOT be out.
Post by: mmkider on April 18, 2006, 03:28:13 am
I express ANSI-mode of wxwidgets lib. :D
Title: Re: The 16 april 2006 build will NOT be out.
Post by: killerbot on April 18, 2006, 07:53:46 am
this evening
Title: Re: The 16 april 2006 build will NOT be out.
Post by: alanwong on April 18, 2006, 10:10:35 am
I compling this file in ANSI-mode , and it's sucess with ANSI-mode.

I understand

thank you.