Module Building, and MinGW

Miscellaneous Forums/Win32 Discussion/Module Building, and MinGW

Since under Windows, you need minGW to compile modules, does this let us link Assembled files ex "DragosLib.a" into the modules, or will we have to wait to a future update to bea ble to do this?

(Edited crap: didn't notice fasm was in the beta!)

Hi,

Should work as-is. Try creating and importing a '.s' file.

Yup. GCC (which is the base of mingw) is able to compile :
.c (C sourcecode)
.s (ASM sourcecode)
.cpp (C++ sourcecode)

and some others (fortran 77 and a few things I saw in gcc's man page).

strange thing is I haven't GCC or MingW installed ( anymore. Had with DevC++ ) and BMax works ... straange
but good that it works :)

* 'Build modules' requires MINGW to be installed under Win32. You will also need to add mingw/bin to your PATH env variable and add an env variable called MINGW pointing to the root mingw dir.



How do you do the above. I installed MinGW to c:\MinGW.

How do I set up paths and stuff because I cant seem to build modules?


[edit]

this is the error I get when I try to build modules after syncmod.

Building Modules
Compiling:blitz_app.c
'gcc' is not recognized as an internal or external command,
operable program or batch file.
Build Error: failed to compile C:/Applications/Coding/BlitzMaxBeta/mod/brl.mod/blitz.mod/blitz_app.c
Process complete

Please help.

@Amon:

It depends on your system...

Win9x : Edit C:\AUTOEXEC.BAT and add the path to "bin" directory of MingW to the PATH
eg. if you have :
set PATH=C:\;C:\WINDOWS

Change it to :
set PATH=C:\;C:\WINDOWS;C:\Mingw\bin


Now if you have Win2k (should work also with WinMe/Xp/NT/etc...) :
Right click "My Computer"
Select "Properties"
Open tab "Advanced"
Click "Environnement Variables"
Search for the variable "PATH"
Click "Modify"
Add to the end : ";C:\Mingw\bin" (without the quotes)


And *DON'T* post on other topics to ask help !

Thx for the help :)

It works now :)

Should I install Fasm or MINGW ?

If Fasm, which version ? The WIN32 console one, or the WIN32GUI ?

Please elaborate...

Sergio.

not sure if this is intentional or not, but there's a fasm.exe in the bin directory of the Beta.

Yes you're right, I didn't notice.

Does that means we don't need to install any MingW/fasm ?

I'm a bit confused...

Also, I'm skeptical about this syncronization method, since it does not work if your internet connection goes through a proxy; anyway, could we also have a traditional installer to be downloaded from the account page, as we always did with the previous Blitz versions ?

What's the advantage of this sync in respect to the download ?

Sergio.

Should I install Fasm or MINGW ?
Just MinGW.

What's the advantage of this sync in respect to the download ?
Instant gratification?

thanks for the replys.
got some more questions.

Why can't we include headers, ie .h.
and how do I set an external function that is in a class.

ie
class cNumber
{
public:
    DoubleMe() { me+=me;)
    int GetMe() {return me;}
private;
    cNumber() { me=1;}
    int me;
}


so in Max i have.
import "number.cpp"
extern 
   function GetMe%()
   function DoubleMe()
end extern

I have also tried
import "number.cpp"
extern 
   function cNumber:GetMe%()
   function cNumber:DoubleMe()
end extern


and it responds with "Identitfier GetMe not found"

Unfortunately there is no C++ object support at this time so you need to build C style wrappers for your methods and declare them as Extern "C" in your headers to avoid C++ name mangling headaches.

I think also from BlitzMax you need to declare the extern block as win32 like this to get correct Windows linkage:

Extern "win32"

Function timeGetTime()

End Extern


Unfortunately there is no C++ object support at this time


Any idea when this will be supported (you say 'at this time' so I assume it's a feature that will be included with some update)?

ahh, ok, so I have to make a wrapper for it, hmm will there be proper c++ support in the future?

ahh, ok, so I have to make a wrapper for it,
Will there be proper c++ support in the future?