(/etc/locale.alias)unicode outfile

eric fsshl at att.net
Tue Jun 28 07:13:48 UTC 2011


On Tue, 2011-06-28 at 01:16 +0100, Jonathan Wakely wrote:
> On 28 June 2011 01:14, eric wrote:
> > On Tue, 2011-06-28 at 00:57 +0100, Jonathan Wakely wrote:
> >> On 28 June 2011 00:31, Jonathan Wakely <jwakely.gcc at gmail.com> wrote:
> >> > On 28 June 2011 00:04, eric wrote:
> >> >>
> >> >>> You need to configure gcc with --enable-clocale=gnu and reinstall it.
> >> >>>
> >> >>> That should be the default on GNU/Linux but apparently your system is
> >> >>> missing something necessary to support named locales.
> >> >>
> >> >> so I do
> >> >> ./configure --enable-clocale=gnu
> >> >
> >> > (You obviously didn't read the installation docs, you're not supposed
> >> > to run ./configure in the source directory)
> >> >
> >> > Did it actually enable the gnu locale model?  You might need to check
> >> > $TARGET/libstdc++-v3/config.log or compare which header files are
> >> > installed.  Noone can tell if you have the GNU locale model installed
> >> > successfully.
> >> >
> >> > Or why don't you just install gcc from Ubuntu's package manager?
> >> > Surely GCC 4.5 is available?
> >> >
> >> Actually you probably do have the GNU locale code installed, I missed
> >> that you can get the same error from the GNU model:
> >>
> >>   void
> >>   locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
> >>                                     __c_locale __old)
> >>   {
> >>     __cloc = __newlocale(1 << LC_ALL, __s, __old);
> >>     if (!__cloc)
> >>       {
> >>         // This named locale is not supported by the underlying OS.
> >>         __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
> >>                                   "name not valid"));
> >>       }
> >>   }
> >>
> >> So the problem must be with your glibc setup.
> >>
> >> Is en_US.utf8 listed in /etc/locale.gen? Any other locales?
> >> Uncomment the ones you want to support, then try running
> >> /usr/sbin/locale-gen as root

And I do this step, after I copy that link's sample locale.gen on my
/etc/ directory.

> >> (I don't know if that's the right way to generate locale data for
> >> Ubuntu, you might want to ask on an Ubuntu forum)
> >>
> >> I've just tried it on a Debian box which only has en_US.utf8 locale
> >> data installed, and Axel's test program worked ok and running "./a.out
> >> en_US.utf8" wrote to the file unicode.txt, so the problem is not with
> >> the code or gcc.
> > ----------------------------
> > my system don't have /etc/locale.gen
> > but
> > it have /etc/locale.alias
> 
> That isn't the same.
> 
> You'll need to find someone who knows how to install localization data
> files on Ubuntu.
> 
> This isn't a gcc issue.
------------------------------------------------------------
I follow the link and its suggestion(hardway)
--
http://people.debian.org/~schultmc/locales.html

--------------

A sample /etc/locale.gen
# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
# combinations are possible, but may not be well tested. If you change
# this file, you need to rerun locale-gen.
#
# XXX GENERATED XXX
#
# NOTE!!! If you change this file by hand, and want to continue
# maintaining manually, remove the above line. Otherwise, use the command
# "dpkg-reconfigure locales" to manipulate this file. You can manually
# change this file without affecting the use of debconf, however, since it
# does read in your changes.

en_US.UTF-8 UTF-8
----------------------------------------------------------------
then run again test code

Not work
same error, by out << sw2 << endl;
out.good() is 0
and when I use no argument, just ./a.out, error
can not generate locale

looking to see any experienced c/g++ and ubuntu/linux programer's help
thanks a lot in advance
Eric






More information about the ubuntu-users mailing list