digitalmars.D - Using NASM and DMD with OptLink
- Trevor (19/19) Mar 16 2005 Im writing a d version of a basic c kernel I found a tutorial on. I am h...
- Carlos Santander B. (4/23) Mar 16 2005 Most likely you need to declare it as extern(C).
- Trevor (23/23) Mar 16 2005 Lets say I am stupid. Where do i put the extern (c) code.. Cause I tried...
- John Reimer (2/34) Mar 16 2005 Use a big 'C' in extern(C). You used a little 'c'.
Im writing a d version of a basic c kernel I found a tutorial on. I am having trouble getting the assmebly code to link to the D code using OptLink. Is there a good way to do this that i don't know of? MASM diddn't seem to work like I hoped. I am trying to use NASMW and i am telling it to output to obj format. All other formats are "Unrecognized" by OptLink. I get this error when linking my D code with my ASM code. link /TINY Objects\Startup.o Objects\Core.obj, Core.bin OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved Objects\Startup.o(Startup) Error 42: Symbol Undefined _core_main OPTLINK : Warning 134: No Start Address Objects\Startup.o(Startup) Warning 47: Below 100H Cannot Be Initialized OPTLINK : Error 46: Start Address Must Be 100H My d code Does indeed have the core_main function defined. Thanks in advance - Trevor
Mar 16 2005
In article <d19979$11a2$1 digitaldaemon.com>, Trevor says...Im writing a d version of a basic c kernel I found a tutorial on. I am having trouble getting the assmebly code to link to the D code using OptLink. Is there a good way to do this that i don't know of? MASM diddn't seem to work like I hoped. I am trying to use NASMW and i am telling it to output to obj format. All other formats are "Unrecognized" by OptLink. I get this error when linking my D code with my ASM code. link /TINY Objects\Startup.o Objects\Core.obj, Core.bin OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved Objects\Startup.o(Startup) Error 42: Symbol Undefined _core_main OPTLINK : Warning 134: No Start Address Objects\Startup.o(Startup) Warning 47: Below 100H Cannot Be Initialized OPTLINK : Error 46: Start Address Must Be 100H My d code Does indeed have the core_main function defined. Thanks in advance - TrevorMost likely you need to declare it as extern(C). _______________________ Carlos Santander Bernal
Mar 16 2005
Lets say I am stupid. Where do i put the extern (c) code.. Cause I tried it
before the core_main function and it gave me errors.
my code:
extern(c) int core_main()
{
ClearScreen();
Write("Welcome to my Kernel");
return(0);
}
my errors:
Source\Core.d(48): valid linkage identifiers are D, C, C++, Pascal, Windows
Source\Core.d(48): Declaration expected, not ')'
Source\Core.d(51): found 'Welcome to My Kernel
' when expecting ')'
Source\Core.d(51): no identifier for declarator
Source\Core.d(51): no identifier for declarator
Source\Core.d(51): semicolon expected, not '0'
Source\Core.d(51): Declaration expected, not '0'
Source\Core.d(52): Declaration expected, not 'return'
Source\Core.d(53): unrecognized declaration
Anyhoo... I hope this can be fixed easily.
Thanks in advance,
Trevor
Mar 16 2005
Trevor wrote:
Lets say I am stupid. Where do i put the extern (c) code.. Cause I tried it
before the core_main function and it gave me errors.
my code:
extern(c) int core_main()
{
ClearScreen();
Write("Welcome to my Kernel");
return(0);
}
my errors:
Source\Core.d(48): valid linkage identifiers are D, C, C++, Pascal, Windows
Source\Core.d(48): Declaration expected, not ')'
Source\Core.d(51): found 'Welcome to My Kernel
' when expecting ')'
Source\Core.d(51): no identifier for declarator
Source\Core.d(51): no identifier for declarator
Source\Core.d(51): semicolon expected, not '0'
Source\Core.d(51): Declaration expected, not '0'
Source\Core.d(52): Declaration expected, not 'return'
Source\Core.d(53): unrecognized declaration
Anyhoo... I hope this can be fixed easily.
Thanks in advance,
Trevor
Use a big 'C' in extern(C). You used a little 'c'.
Mar 16 2005








John Reimer <brk_6502 yahoo.com>