Boost logo

Boost-Build :

From: chyipin (chyipin_at_[hidden])
Date: 2004-09-22 04:36:16


--- In jamboost_at_[hidden], Vladimir Prus <ghost_at_c...> wrote:
> chyipin wrote:
> > --- In jamboost_at_[hidden], Vladimir Prus <ghost_at_c...> wrote:
> > > chyipin wrote:
> > > > I am failing to build the v2/example/libraries example project.
> > > > Please help.
> > > >
> > > > gcc.link.dll bar\bin\gcc\debug\bar.dll
> >
> >
C:\MinGW\bin\..\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe:
> > > > invalid hex number for PE parameter 'bar.dll'
> > > >
> > > > g++ -g -o "bar\bin\gcc\debug\bar.dll" -Wl,-h -Wl,bar.dll
> > >
> > > I recall we had this problem in past, and the solution was to update
> >
> > to the
> >
> > > current mingw. I've downloaded the latest version from sourceforge,
> >
> > and it
> >
> > > worked fine.
> >
> > I am using the latest version from sourceforge.
> > MinGW-3.1.0-1.exe (current)
> >
> > I encountered the same problem on a different machine (win2k).
>
> What does "ld --version" output? I get:
>
> 2.15.90
>
> and it works. OTOH, I plan to figure out of "-h" option is really
ignored on
> mingw, and if that's the case, to fix the issue on Boost.Build side.
>
> - Volodya

My ld --version shows 2.13.xx

I updated ld to 2.15.90 and it works fine. Thanks.

With this fix, I proceed to test the other examples. Unfortunately, I
encountered lots of trouble here:

Versioned example:
C:\boost_1_31_0\tools\build\v2\example\versioned>bjam
C:/boost_1_31_0/tools/build/v2/build\modifiers.jam: line 139: syntax
error at keyword ;
C:/boost_1_31_0/tools/build/v2/build\modifiers.jam: line 207: syntax
error at keyword ;
C:/boost_1_31_0/tools/build/v2/build\modifiers.jam:208: in
modules.loadrule feature.feature unknown in module
Jamfile</C:/boost_1_31_0/tools/build/v2/example/versioned>.
C:/boost_1_31_0/tools/build/v2/build\project.jam:255: in load-jamfile
C:/boost_1_31_0/tools/build/v2/build\project.jam:67: in project.load
C:/boost_1_31_0/tools/build/v2\build-system.jam:75: in load
C:\boost_1_31_0\tools\build\v2\example\..\kernel\modules.jam:259: in
import
C:\boost_1_31_0\tools\build\v2\example\..\kernel\bootstrap.jam:120: in
boost-build
C:\boost_1_31_0\tools\build\v2\example\boost-build.jam:2: in module scope

Gettext example (need to get gettext and libiconv separately from mingw):
...found 17 targets...
...updating 4 targets...
gcc.compile.c++ bin\gcc\debug\main.o
gcc.link bin\gcc\debug\main.exe
bin\gcc\debug\main.o(.text+0x50): In function `main':
C:/boost_1_31_0/tools/build/v2/example/gettext/main.cpp:13: undefined
reference
to `libintl_bindtextdomain'
bin\gcc\debug\main.o(.text+0x60):C:/boost_1_31_0/tools/build/v2/example/gettext/
main.cpp:14: undefined reference to `libintl_textdomain'
bin\gcc\debug\main.o(.text+0x90):C:/boost_1_31_0/tools/build/v2/example/gettext/
main.cpp:20: undefined reference to `libintl_gettext'

g++ -g -o "bin\gcc\debug\main.exe" "bin\gcc\debug\main.o"
-Wl,-Bdynam
ic -Wl,-Bstatic -Wl,-Bdynamic -Wl,-Bstatic -Wl,-Bdynamic

...failed gcc.link bin\gcc\debug\main.exe...
gettext.compile bin\gcc\debug\russian.mo
msgfmt: russian.po: warning: Charset "CHARSET" is not a portable
encoding name.
Message conversion to user's charset
might not work
.
common.copy messages\ru_RU.KOI8-R\LC_MESSAGES\main.mo
1 file(s) copied.
...failed updating 1 target...
...updated 3 targets...

I need to modify the Jamfile to make this example work:
-- snip --
lib intl
:
: <file>C:\\mingw\\lib\\libintl.a
;

lib iconv
:
: <file>C:\\mingw\\lib\\libiconv.dll.a
;

# Declare a main target.
exe main
: main.cpp intl iconv
;
-- snip --

Do we really need the lib definitions to make this work? I don't like
hard-coding the path to the libs.

Execution:
C:\boost_1_31_0\tools\build\v2\example\gettext>bin\gcc\debug\main
hello

The incorrect output is displayed, when I am expecting "international
hello" as defined in russion.po. It doesn't seems to pick up the
russian.mo file. msgunfmt on the .mo files looks right. Please help
clear up my confusion on properly using the gettext.

Updating messages:

C:\boost_1_31_0\tools\build\v2\example\gettext>bjam update-russian
C:/boost_1_31_0/tools/build/v2/build\virtual-target.jam:156: in path
rule errors.error unknown in module object(notfile-target)@1.
C:/boost_1_31_0/tools/build/v2/build\virtual-target.jam:367: in grist
C:/boost_1_31_0/tools/build/v2/build\virtual-target.jam:350: in
actual-name
C:/boost_1_31_0/tools/build/v2/build\virtual-target.jam:169: in
actualize-no-sca
nner
C:/boost_1_31_0/tools/build/v2/build\virtual-target.jam:110: in
object(notfile-t
arget)@1.actualize
C:/boost_1_31_0/tools/build/v2\build-system.jam:169: in load
C:\boost_1_31_0\tools\build\v2\example\..\kernel\modules.jam:259: in
import
C:\boost_1_31_0\tools\build\v2\example\..\kernel\bootstrap.jam:120: in
boost-bui
ld
C:\boost_1_31_0\tools\build\v2\example\boost-build.jam:2: in module scope

Totally have no clue about the messages here.

Any inputs on these issues is greatly appreaciated.

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk