Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #67811
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Trying to be generic with the linker (ld instead of g++) |
| Date | 2019-08-20 14:10 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <qjgnvb$6gc$1@dont-email.me> (permalink) |
| References | <fd41e1db-a2dc-445e-8ecb-f176d3361e03@googlegroups.com> |
On 20/08/2019 13:09, Frederick Gotham wrote: > > I've been doing web searches all morning to try solve this so I'm here now as last resort. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Typically if we want to combine C and C++ in one program, we can do three steps: > > gcc -c *.c > g++ -c *.cpp > g++ -o prog *.o > > So we use 'gcc' to compile the C code. Then we use 'g++' to compile the C++ code. Finally we use 'g++' a second time to link the object files together into one executable file. > > I'm trying to be as generic as possible here in the final step (i.e. linking), and so I want to replace the second use of 'g++' with 'ld', so something like: > > gcc -c *.c > g++ -c *.o > ld -o prog *.o Why? What benefit do you think you'll get from using "ld" instead of "g++" for the linking? It will just mean adding more manual flags. > > This works fine for the C portion of the program so long as you link with the standard C library like this: > > ld -lc -o prog *.o > > But if you also want to link with the C++ library (including the STL), then in theory you can try something like: > > ld -lc -lc++ -o prog *.o > > But this doesn't work for me on my 64-Bit x86_64 Ubuntu 18.04 personal computer. I've tried a few different switches to get the C++ standard library (e.g. lstdc++) but none of them work. > There are a variety of libraries that will be included automatically when you link using "gcc" and "g++". Linking C++ code will require more of these than simpler C code, which is why you get away with it for the C code. > How do you link the C++ standard library in when linking with 'ld' ? > > If I run "ld --version" at the command line then I get: > Invoke "g++ *.o" or "gcc *.o" with the "-v" flag, and it will print the options. You may not need all of these for manual "ld" flags, but you will no doubt need more than you have.
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Trying to be generic with the linker (ld instead of g++) Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-08-20 04:09 -0700
Re: Trying to be generic with the linker (ld instead of g++) Bart <bc@freeuk.com> - 2019-08-20 12:25 +0100
Re: Trying to be generic with the linker (ld instead of g++) Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-08-20 04:34 -0700
Re: Trying to be generic with the linker (ld instead of g++) Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2019-08-21 01:07 +0100
Re: Trying to be generic with the linker (ld instead of g++) Keith Thompson <kst-u@mib.org> - 2019-08-20 15:50 -0700
Re: Trying to be generic with the linker (ld instead of g++) Bart <bc@freeuk.com> - 2019-08-21 00:27 +0100
Re: Trying to be generic with the linker (ld instead of g++) Ralf Fassel <ralfixx@gmx.de> - 2019-08-20 14:05 +0200
Re: Trying to be generic with the linker (ld instead of g++) David Brown <david.brown@hesbynett.no> - 2019-08-20 14:10 +0200
Re: Trying to be generic with the linker (ld instead of g++) Keith Thompson <kst-u@mib.org> - 2019-08-20 15:58 -0700
Re: Trying to be generic with the linker (ld instead of g++) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-08-22 04:47 -0700
Don't extensions still work? (Was: Trying to be generic with the linker (ld instead of g++)) gazelle@shell.xmission.com (Kenny McCormack) - 2019-08-22 12:12 +0000
Re: Don't extensions still work? (Was: Trying to be generic with the linker (ld instead of g++)) David Brown <david.brown@hesbynett.no> - 2019-08-22 15:08 +0200
Re: Don't extensions still work? (Was: Trying to be generic with the linker (ld instead of g++)) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-08-22 12:57 -0700
csiph-web