Jump to content
  • Advertisement
Sign in to follow this  
Tradone

Trouble linking with gnu header file cgicc

This topic is 4634 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

cgicc is a cgi library under the gnu license, and I would like to use their file uploading class. Since I own a freebsd box I went ahead and installed through the ports 151# whereis cgicc cgicc: /usr/ports/www/cgicc 151# cd /usr/ports/www/cgicc 151# make 151# make install 151# next step I tried compiling the their example code
#include <iostream>
#include <vector>
#include <string>

#include <cgicc/Cgicc.h>
#include <cgicc/HTTPHTMLHeader.h>
#include <cgicc/HTMLClasses.h>

using namespace std;
using namespace cgicc;

int 
main(int argc, 
     char **argv)
{
   try {
      Cgicc cgi;

      // Send HTTP header
      cout << HTTPHTMLHeader() << endl;

      // Set up the HTML document
      cout << html() << head(title("Cgicc example")) << endl;
      cout << body() << endl;

      // Print out the submitted element
      form_iterator name = cgi.getElement("name");
      if(name != cgi.getElements().end()) {
         cout << "Your name: " << **name << endl;
      }

      // Close the HTML document
      cout << body() << html();
   }
   catch(exception& e) {
      // handle any errors - omitted for brevity
   }
}


with the following commands 151# g++ -o foo.cgi -I/usr/local/include -L/usr/local/lib foo.cpp however failed with the following linking errors
151# g++ -o foo.cgi -I/usr/local/include -L/usr/local/lib ShenuUpload.cpp
ShenuUpload.cpp:38:2: warning: no newline at end of file
/var/tmp//ccKZK108.o(.text+0x12a): In function `main':
: undefined reference to `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)'
/var/tmp//ccKZK108.o(.text+0x147): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::HTTPHTMLHeader()'
/var/tmp//ccKZK108.o(.text+0x15b): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x190): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::~HTTPHTMLHeader()'
/var/tmp//ccKZK108.o(.text+0x1b3): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::~HTTPHTMLHeader()'
/var/tmp//ccKZK108.o(.text+0x24a): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x253): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x40c): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x4ad): In function `main':
: undefined reference to `cgicc::Cgicc::getElement(std::string const&)'
/var/tmp//ccKZK108.o(.text+0x563): In function `main':
: undefined reference to `cgicc::Cgicc::getElements() const'
/var/tmp//ccKZK108.o(.text+0x5c8): In function `main':
: undefined reference to `cgicc::FormEntry::operator*() const'
/var/tmp//ccKZK108.o(.text+0x68a): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x693): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccKZK108.o(.text+0x757): In function `main':
: undefined reference to `cgicc::Cgicc::~Cgicc()'
/var/tmp//ccKZK108.o(.text+0x777): In function `main':
: undefined reference to `cgicc::Cgicc::~Cgicc()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEEC1Ev+0x15): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEEC1ERKSs+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::HTMLBooleanElement(std::string const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEEC1ERKNS_11HTMLElementE+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::HTMLBooleanElement(cgicc::HTMLElement const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEEC1Ev+0x15): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7bodyTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7headTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_8titleTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7htmlTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7htmlTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_8titleTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7headTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccKZK108.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7bodyTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::bodyTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::headTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::titleTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccKZK108.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::htmlTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
151# g++ -o foo.cgi -I/usr/local/include -L/usr/local/lib ShenuUpload.cpp
ShenuUpload.cpp:38:2: warning: no newline at end of file
/var/tmp//ccBjJAGx.o(.text+0x12a): In function `main':
: undefined reference to `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)'
/var/tmp//ccBjJAGx.o(.text+0x147): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::HTTPHTMLHeader()'
/var/tmp//ccBjJAGx.o(.text+0x15b): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x190): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::~HTTPHTMLHeader()'
/var/tmp//ccBjJAGx.o(.text+0x1b3): In function `main':
: undefined reference to `cgicc::HTTPHTMLHeader::~HTTPHTMLHeader()'
/var/tmp//ccBjJAGx.o(.text+0x24a): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x253): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x40c): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x4ad): In function `main':
: undefined reference to `cgicc::Cgicc::getElement(std::string const&)'
/var/tmp//ccBjJAGx.o(.text+0x563): In function `main':
: undefined reference to `cgicc::Cgicc::getElements() const'
/var/tmp//ccBjJAGx.o(.text+0x5c8): In function `main':
: undefined reference to `cgicc::FormEntry::operator*() const'
/var/tmp//ccBjJAGx.o(.text+0x68a): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x693): In function `main':
: undefined reference to `cgicc::operator<<(std::ostream&, cgicc::MStreamable const&)'
/var/tmp//ccBjJAGx.o(.text+0x757): In function `main':
: undefined reference to `cgicc::Cgicc::~Cgicc()'
/var/tmp//ccBjJAGx.o(.text+0x777): In function `main':
: undefined reference to `cgicc::Cgicc::~Cgicc()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEEC1Ev+0x15): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEEC1ERKSs+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::HTMLBooleanElement(std::string const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEEC1ERKNS_11HTMLElementE+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::HTMLBooleanElement(cgicc::HTMLElement const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEEC1Ev+0x15): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLAttributeList const*, cgicc::HTMLElement const*, std::string const*, cgicc::HTMLElement::EElementType)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEED1Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7bodyTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7headTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_8titleTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTVN5cgicc18HTMLBooleanElementINS_7htmlTagEEE+0x10): undefined reference to `cgicc::HTMLElement::render(std::ostream&) const'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEED0Ev+0x16): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::~HTMLBooleanElement()':
: undefined reference to `cgicc::HTMLElement::~HTMLElement()'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7htmlTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_8titleTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7headTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.r._ZTIN5cgicc18HTMLBooleanElementINS_7bodyTagEEE+0x8): undefined reference to `typeinfo for cgicc::HTMLElement'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7bodyTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::bodyTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::bodyTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7headTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::headTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::headTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_8titleTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::titleTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::titleTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'
/var/tmp//ccBjJAGx.o(.gnu.linkonce.t._ZN5cgicc18HTMLBooleanElementINS_7htmlTagEEC1ERKS2_+0x10): In function `cgicc::HTMLBooleanElement<cgicc::htmlTag>::HTMLBooleanElement(cgicc::HTMLBooleanElement<cgicc::htmlTag> const&)':
: undefined reference to `cgicc::HTMLElement::HTMLElement(cgicc::HTMLElement const&)'


This is their official documentation: http://www.cgicc.org/doc/ So I googled "c++ linker error undefined reference to" and it seems like I need to link my cpp program with the appropriate linker files. Can you please guide me as to where I can start? [Edited by - Tradone on April 7, 2006 8:45:29 PM]

Share this post


Link to post
Share on other sites
Advertisement
you need to tell the linker to link with the cgicc library.

the library itself will be called something like libcgicc.a

if that is, in fact, what it is called, you can compile with:

g++ -o foo.cgi -I/usr/local/include -L/usr/local/lib -lcgicc foo.cpp

the -l flag says to link with the specified library. use the library's name, with no 'lib' on the front, and no '.a' at the end.

Share this post


Link to post
Share on other sites
Quote:
Original post by echohead
you need to tell the linker to link with the cgicc library.

the library itself will be called something like libcgicc.a

if that is, in fact, what it is called, you can compile with:

g++ -o foo.cgi -I/usr/local/include -L/usr/local/lib -lcgicc foo.cpp

the -l flag says to link with the specified library. use the library's name, with no 'lib' on the front, and no '.a' at the end.


oh I see.
I was getting similar errors, with other libraries.
and I just assumed they were broken or not working on the freebsd boxes.
Where can I read more information on how the linking process works?
If you don't mind.

Thanks for the information.
I was able to compile the program and make it run.

Share this post


Link to post
Share on other sites
man ld

i guess that the man page really doesn't talk too much about the 'linking process'.

'linker' on wikipedia looks to be a pretty good overview of what the linker does.

[Edited by - echohead on April 7, 2006 9:03:21 PM]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!