View previous topic :: View next topic |
Author |
Message |
bobef
Joined: 05 Jun 2005 Posts: 269
|
Posted: Sat May 05, 2007 12:47 am Post subject: Errors with Tangobos from trunk (revision 11) |
|
|
\std\c\stdio.d(191): Error: identifier 'va_list' is not defined
\std\c\stdio.d(191): Error: va_list is used as a type
\std\c\stdio.d(191): Error: cannot have parameter of type void
\std\c\stdio.d(192): Error: identifier 'va_list' is not defined
\std\c\stdio.d(192): Error: va_list is used as a type
\std\c\stdio.d(192): Error: cannot have parameter of type void
\std\c\stdio.d(194): Error: identifier 'va_list' is not defined
\std\c\stdio.d(194): Error: va_list is used as a type
\std\c\stdio.d(194): Error: cannot have parameter of type void
\std\c\stdio.d(236): Error: identifier 'va_list' is not defined
\std\c\stdio.d(236): Error: va_list is used as a type
\std\c\stdio.d(236): Error: cannot have parameter of type void
\std\c\stdio.d(273): Error: identifier 'va_list' is not defined
\std\c\stdio.d(273): Error: va_list is used as a type
\std\c\stdio.d(273): Error: cannot have parameter of type void
\std\c\stdio.d(274): Error: identifier 'va_list' is not defined
\std\c\stdio.d(274): Error: va_list is used as a type
\std\c\stdio.d(274): Error: cannot have parameter of type void
\std\c\stdio.d(276): Error: identifier 'va_list' is not defined
\std\c\stdio.d(276): Error: va_list is used as a type
\std\c\stdio.d(276): Error: cannot have parameter of type void
\std\c\stdio.d(278): Error: identifier 'va_list' is not defined
\std\c\stdio.d(278): Error: va_list is used as a type
\std\c\stdio.d(278): Error: cannot have parameter of type void
\std\format.d(447): Error: identifier 'va_list' is not defined
\std\format.d(447): Error: va_list is used as a type
\std\format.d(447): Error: cannot have parameter of type void
\std\stdio.d(133): Error: identifier 'va_list' is not defined
\std\stdio.d(133): Error: va_list is used as a type
\std\stdio.d(133): Error: cannot have parameter of type void
\std\string.d(3435): Error: identifier 'va_list' is not defined
\std\string.d(3435): Error: va_list is used as a type
\std\string.d(3435): Error: cannot have parameter of type void |
|
Back to top |
|
|
baxissimo
Joined: 23 Oct 2006 Posts: 241 Location: Tokyo, Japan
|
Posted: Thu May 24, 2007 11:16 pm Post subject: More errors... and eventual SUCCESS! |
|
|
bobef wrote: | \std\c\stdio.d(191): Error: identifier 'va_list' is not defined
\std\c\stdio.d(191): Error: va_list is used as a type
\std\c\stdio.d(191): Error: cannot have parameter of type void
...
|
I get these too. It's weird because right in std/c/stdarg.d there's a big fat "alias void* va_list". And stdio.d is importing that.
... ok I was able to get past that one by explicitly including the tangobos directory with a -I directive. Actually I think that is documented in the README:
Code: |
This version is based on Phobos 1.011. You'll need to have a Tango capable of
-version=PhobosCompatibility. You can either build this with dsss, or just
-I<tangobos' path>
|
Ok, so I do that, but then I get this error
Code: |
F:\usr\pkg\d\dmd\import\tangobos\tests>dmd -I.. writetest.d
f:\usr\pkg\d\dmd\bin\..\..\dm\bin\link.exe writetest,,,user32+kernel32/noi;
OPTLINK (R) for Win32 Release 8.00.1
Copyright (C) Digital Mars 1989-2004 All rights reserved.
writetest.obj(writetest)
Error 42: Symbol Undefined _D3std5stdio8writeflnFYv
--- errorlevel 1
|
The program is just simple hello world:
Code: |
import std.compat;
import std.stdio;
void main()
{
writefln("Hello world!");
}
|
Right, no problem, I can add them the compile line:
Code: |
F:\usr\pkg\d\dmd\import\tangobos\tests>dmd -I.. writetest.d Stangobos.lib Stangobos-etc.lib
f:\usr\pkg\d\dmd\bin\..\..\dm\bin\link.exe writetest,,,Stangobos.lib+Stangobos-e
tc.lib+user32+kernel32/noi;
OPTLINK (R) for Win32 Release 8.00.1
Copyright (C) Digital Mars 1989-2004 All rights reserved.
f:\usr\pkg\d\dm\bin\..\lib\SNN.lib(fputwc) Offset 09AF4H Record Type 00C3
Error 1: Previous Definition Different : _putwc
f:\usr\pkg\d\dm\bin\..\lib\SNN.lib(fgetwc) Offset 093A3H Record Type 00C3
Error 1: Previous Definition Different : _getwc
--- errorlevel 2
|
putwc and getwc seem to be defined in std/c/stdio.d. Ok so I comment them out. And replace them with prototypes
Code: |
///
//wchar_t getwc(FILE *fp) { return fgetwc(fp); }
wchar_t getwc(FILE *fp);
///
//wchar_t putwc(wchar_t c, FILE *fp) { return fputwc(c, fp); }
wchar_t putwc(wchar_t c, FILE *fp);
|
And lo and behold! Whoa! Tangobos works! Yeah!
|
|
Back to top |
|
|
baxissimo
Joined: 23 Oct 2006 Posts: 241 Location: Tokyo, Japan
|
Posted: Fri May 25, 2007 12:01 am Post subject: Re: More errors... and eventual SUCCESS! |
|
|
Quote: |
... ok I was able to get past that one by explicitly including the tangobos directory with a -I directive. Actually I think that is documented in the README:
Code: |
This version is based on Phobos 1.011. You'll need to have a Tango capable of
-version=PhobosCompatibility. You can either build this with dsss, or just
-I<tangobos' path>
|
|
The other alternative if, like me, you aren't sure how to compile Tango with --version=PhobosCompatibility, nor do you want to have to use a -I everywhere, seems to be to set up your sc.ini with Tangobos first:
Code: |
[Version]
version=7.51 Build 020
[Environment]
LIB="%@P%\..\import\tangobos;%@P%\..\import\tango\lib;%@P%\..\lib;%@P%\..\..\dm\lib"
DFLAGS="-I%@P%\..\import\tangobos" "-I%@P%\..\import\tango" -version=Tango
LINKCMD=%@P%\..\..\dm\bin\link.exe
|
|
|
Back to top |
|
|
revcompgeek
Joined: 24 Nov 2007 Posts: 27
|
Posted: Mon Nov 26, 2007 5:10 pm Post subject: |
|
|
For PhobosCompatability, cant you just add a line that says version=PhobosCompatability before the imports? |
|
Back to top |
|
|
larsivi Site Admin
Joined: 27 Mar 2004 Posts: 453 Location: Trondheim, Norway
|
Posted: Tue Nov 27, 2007 3:21 am Post subject: |
|
|
version statements only appliy to the module they are in, so it won't work for PhobosCompatibility.
Btw, we hope to make Tangobos more up-to-date and complete. Are there anyone who wants to help out with that? Note that std.thread now wraps tango.core.Thread and should thus work out of the box. Are there other problematic areas? |
|
Back to top |
|
|
davidl
Joined: 17 Aug 2006 Posts: 27
|
Posted: Mon May 19, 2008 8:27 am Post subject: |
|
|
you must have used dsss install to install tango right?
you can delete the
dmd/include/d/std
folder to make tangobos work |
|
Back to top |
|
|
baxissimo
Joined: 23 Oct 2006 Posts: 241 Location: Tokyo, Japan
|
Posted: Mon May 19, 2008 8:50 am Post subject: |
|
|
davidl wrote: | you must have used dsss install to install tango right?
you can delete the
dmd/include/d/std
folder to make tangobos work |
What seems to work for me is just re-doing the dsss install of tangobos after every time I dsss install tango. |
|
Back to top |
|
|
|