Re: [Audacity-devel] Linked libraries
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Daniel O'C. <da...@do...> - 2004-04-01 00:44:12
|
On Thu, 1 Apr 2004 10:01, Joshua Haberman wrote: > If I write: > > void foo() > { > wxString str; > } > > C++ generates calls to wxString::wxString() and to > wxString::~wxString(). There is no way this will link if the wxString > class is not resolvable at link time. There is no way to tell C++, at > run time, where to find the constructor and destructor, which is what > you would have to do to link it in at runtime. You would be forced to > do something like (I have no idea if you could actually make this > work): > > void foo() > { > void* wxStringThisPtr; > _ZN12wxStringBaseC1Emc(wxStringThisPtr); // constructor > > int i = _ZNK12wxStringBase4findEcm(wxStringThisPtr, 'x'); // method > call to wxStringBase::find('x'); > > // ... > > _ZN12wxStringBaseD2E_(wxStringThisPtr); // destructor, but be sure > that all code paths call it! > } Mmm, but when you compile your pligin you link it to all of the libraries it uses, and when you dlopen() your plugin the linker will load the libraries that aren't already loaded and resolve the symbols. I don't really see C++ as being that much different as long as they are built with compatible compilers. (for name mangling) -- Daniel O'Connor software and network engineer for Genesis Software - http://www.gsoft.com.au "The nice thing about standards is that there are so many of them to choose from." -- Andrew Tanenbaum GPG Fingerprint - 9A8C 569F 685A D928 5140 AE4B 319B 41F4 5D17 FDD5 |