digitalmars.D - Ref to deh_end deh_beg
- Barry Denton (63/63) Mar 14 2008 these obviously internal but keep coming on compile . often, we think so...
- Denton Cockburn (1/1) Mar 14 2008 is main defined in multiple places somewhere in the compiled code?
- Frits van Bommel (16/23) Mar 14 2008 The last message means no valid main() was defined. The other symbols
- Barry Denton (2/29) Mar 14 2008 Thanks so . Had main in class , dumb
- Frits van Bommel (3/10) Mar 14 2008 D !is Java :).
- Barry Denton (2/29) Mar 14 2008 Thanks so . Had main in class , dumb
these obviously internal but keep coming on compile . often, we think something
missing on install like extern C ? .
have tango-src-SNAPSHOT-20080308 , dmd 1.027 built with dsss 0.75
nm Out
[davwk]$ nm calcLoanRepayments.o
U _D10ModuleInfo6__vtblZ
U _D10TypeInfo_d6__initZ
U _D10TypeInfo_i6__initZ
U _D11BankAccount11BankAccount4RateFdZv
U _D11BankAccount11BankAccount6getFeeFZd
U _D11LoanAccount11LoanAccount5_ctorMFdZC11LoanAccount11LoanAccount
U _D11LoanAccount11LoanAccount7__ClassZ
U _D11TypeInfo_Aa6__initZ
00000000 V _D14TypeInfo_B3Aad6__initZ
00000000 V _D14TypeInfo_B3Aai6__initZ
U _D14TypeInfo_Tuple6__vtblZ
00000060 D _D18calcLoanRepayments12__ModuleInfoZ
00000000 T _D18calcLoanRepayments18calcLoanRepayments4mainMFAAaZv
00000120 R _D18calcLoanRepayments18calcLoanRepayments6__initZ
00000150 R _D18calcLoanRepayments18calcLoanRepayments6__vtblZ
00000000 D _D18calcLoanRepayments18calcLoanRepayments7__ClassZ
U _D5tango2io5Print12__T5PrintTaZ5Print5printMFYC5tango2io5Print12__T5PrintTaZ5Print
U _D5tango2io5Print12__T5PrintTaZ5Print7newlineMFZC5tango2io5Print12__T5PrintTaZ5Print
U _D5tango2io6Stdout12__ModuleInfoZ
U _D5tango2io6Stdout6StdoutC5tango2io5Print12__T5PrintTaZ5Print
U _D6Object7__ClassZ
U _D6object6Object5opCmpMFC6ObjectZi
U _D6object6Object6toHashMFZk
U _D6object6Object8opEqualsMFC6ObjectZi
U _D6object6Object8toStringMFZAa
U _D9ClassInfo6__vtblZ
U _D9invariant12_d_invariantFC6ObjectZv
U _Dmodule_ref
00000010 r _TMP1
00000028 r _TMP2
00000040 r _TMP3
00000058 r _TMP4
00000078 r _TMP5
00000098 r _TMP6
000000b8 r _TMP7
000000e0 r _TMP8
U _d_newclass
00000000 t gcc2_compiled.
00000048 d internal
00000050 d internal
-------------------------------------------------------------------------------------------------------
Compiler Out
[davwk]$ dsss build -oq calcLoanRepayments.d
Default prefix /usr is unwritable, using /home/davwk/d instead.
calcLoanRepayments.d => calcLoanRepayments
+ /usr/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/davwk/d/include/d
-S/home/davwk/d/lib/ -oq -I/usr/include/d -S/usr/lib -I/home/davwk/d/include/d
-S/home/davwk/d/lib -oqdsss_objs/D calcLoanRepayments.d -ofcalcLoanRepayments
gcc dsss_objs/D/_calcLoanRepayments.o dsss_objs/D/_LoanAccount.o
dsss_objs/D/_BankAccount.o -o calcLoanRepayments -m32 -ltango-base-dmd
-ltango-user-dmd -lDD-tango-io -lDD-tango-sys -lDD-tango-stdc
-lDD-tango-sys-linux -lDD-tango-stdc -lDD-tango-io -lDD-tango-text
-lDD-tango-io -Xlinker -L./ -Xlinker -L/home/davwk/d/lib/ -Xlinker -L/usr/lib
-Xlinker -L/home/davwk/d/lib -ltango-user-dmd -ltango-user-dmd -ltango-base-dmd
-lpthread -lm
/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o): In
function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined
reference to `_deh_beg'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined
reference to `_deh_beg'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14): undefined
reference to `_deh_end'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined
reference to `_deh_end'
/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o):
In function `_D6dmain24mainUiPPaZi7runMainMFZv':
dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to
`_Dmain'
collect2: ld returned 1 exit status
--- errorlevel 1
Command /usr/bin/rebuild returned with code 65280, aborting.
Error: Command failed, aborting.
[davwk]$
Mar 14 2008
is main defined in multiple places somewhere in the compiled code?
Mar 14 2008
Barry Denton wrote:/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o): In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable': deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14): undefined reference to `_deh_end' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined reference to `_deh_end' /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o): In function `_D6dmain24mainUiPPaZi7runMainMFZv': dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to `_Dmain'The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)
Mar 14 2008
Frits van Bommel Wrote:Barry Denton wrote:Thanks so . Had main in class , dumb/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o): In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable': deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14): undefined reference to `_deh_end' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined reference to `_deh_end' /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o): In function `_D6dmain24mainUiPPaZi7runMainMFZv': dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to `_Dmain'The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)
Mar 14 2008
Barry Denton wrote:Frits van Bommel Wrote:[snip]Barry Denton wrote:dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to `_Dmain'The last message means no valid main() was defined. The other symbolsThanks so . Had main in class , dumbD !is Java :).
Mar 14 2008
Frits van Bommel Wrote:Barry Denton wrote:Thanks so . Had main in class , dumb/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o): In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable': deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined reference to `_deh_beg' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14): undefined reference to `_deh_end' deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined reference to `_deh_end' /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o): In function `_D6dmain24mainUiPPaZi7runMainMFZv': dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to `_Dmain'The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)
Mar 14 2008









Denton Cockburn <diboss hotmail.com> 