Module Building, and MinGW

Archives Forums/Win32 Discussion/Module Building, and MinGW

Drago(Posted 2004) [#1]
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?


BlitzSupport(Posted 2004) [#2]
(Edited crap: didn't notice fasm was in the beta!)


marksibly(Posted 2004) [#3]
Hi,

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


MagicalTux(Posted 2004) [#4]
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).


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


Amon_old(Posted 2004) [#6]
* '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.


MagicalTux(Posted 2004) [#7]
@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 !


Amon_old(Posted 2004) [#8]
Thx for the help :)

It works now :)


semar(Posted 2004) [#9]
Should I install Fasm or MINGW ?

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

Please elaborate...

Sergio.


Perturbatio(Posted 2004) [#10]
not sure if this is intentional or not, but there's a fasm.exe in the bin directory of the Beta.


semar(Posted 2004) [#11]
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.


FlameDuck(Posted 2004) [#12]
Should I install Fasm or MINGW ?
Just MinGW.

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


Drago(Posted 2004) [#13]
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"


skidracer(Posted 2004) [#14]
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



N(Posted 2004) [#15]
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)?


Drago(Posted 2004) [#16]
ahh, ok, so I have to make a wrapper for it, hmm will there be proper c++ support in the future?


Drago(Posted 2004) [#17]
ahh, ok, so I have to make a wrapper for it,
Will there be proper c++ support in the future?