www.delorie.com/archives/browse.cgi | search |
From: | Damian Yerrick <Bullcr_pd_yerrick AT hotmail DOT comRemoveBullcr_p> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Nasm & Gcc. HELP! |
Organization: | Pin Eight Software http://pineight.8m.com/ |
Message-ID: | <u63c5t86gdvhcecdqkv6ahrn5qcdf6h710@4ax.com> |
References: | <934tdg$oj0$1 AT nnrp1 DOT deja DOT com> |
X-Newsreader: | Forte Agent 1.7/32.534 |
MIME-Version: | 1.0 |
Lines: | 63 |
X-Trace: | +LkLmgGeDkTBzHawEMhNGPNi0isN0BrzM03Rk3xb3feB/hUSt+p5MOugULHDQSgrjoAHJ/GbnPFJ!LtPpYZgD3iJlNi3ZDI9Yc51zmtZIb/wx1o0ywMqsKqb9frbWJXVkhXWYtf8qPXW4N4Szsbf0PfT/!iA== |
X-Complaints-To: | abuse AT gte DOT net |
X-Abuse-Info: | Please be sure to forward a copy of ALL headers |
X-Abuse-Info: | Otherwise we will be unable to process your complaint properly |
NNTP-Posting-Date: | Fri, 05 Jan 2001 18:05:02 GMT |
Distribution: | world |
Date: | Fri, 05 Jan 2001 18:05:02 GMT |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
On Fri, 05 Jan 2001 16:40:17 GMT, pixelpajas AT my-deja DOT com wrote: >Hi .. I'm trying to learn how to use nasm >assembler code with gcc but i get an error when i >link the objects. Below are the source files and >command compile/link entries. > > > >- 4k.c ---------------------------------------- > >extern unsigned int keyget(unsigned int); > >void main(void) >{ > keyget(1); >} > >----------------------------------------------- > > >- lib.asm ------------------------------------- > >[BITS 32] >[GLOBAL _key] >[SECTION .text] > > >_key: MOV CX,1 [snip] >first i build lib.asm -> nasm -f coff lib.asm > >then i compile 4k.c -> gxx -nostdlib -nostdinc - >fno-builtin -fno-exceptions -c -O3 4k.c -r > >and at last i try to link -> ld -nostdlib - >nostdinc -fno-builtin -fno-exceptions -e _main - >oformat binary -o 4k.com 4k.o lib.o > >but in the last step i get -> " 4k.o >(.text+0x6):4k.c: undefined reference to `_keyget >(unsigned int)' " 1. The function should be called _keyget not _key in the asm source. 2. You are trying to compile C programs with gxx, which assumes all source is C++. (Use .cc or .cpp extension for C++ source.) 3. Because of this, you are trying to use C++ calling conventions for a C calling conventions function. Try wrapping your prototypes with extern "C" { /* prototypes */ } -- <O ( \ GNOME vs. KDE: the game! X http://pineight.8m.com/nes.htm This is McAfee VirusScan. Add these two lines to your signature to prevent the spread of signature viruses. http://www.mcafee.com/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |