|
|
Choosing A Webhost: |
RE: Log4cxx in my project, unresolved symbols despite hours of work: msg#00059apache.logging.log4cxx.user
One thing I noticed also is that each of the errors (with static libs) is associated with the following lines of code within my code: LoggerPtr logger(Logger::getLogger("MyApp")); LOG4CXX_INFO(logger, "Entering application."); These lines were pulled out directly from the working app however, I'm terribly confused. :( Eric Eborn, Software Engineer 801-545-5449 eric.d.eborn@xxxxxxxx > -----Original Message----- > From: Eborn, Eric D > Sent: Wednesday, November 28, 2007 7:37 AM > To: Log4CXX User > Subject: RE: Log4cxx in my project, unresolved symbols despite hours of > work > > I had figured as much, that I wouldn’t need to use that directive if using > shared libs, but it cleaned up a few errors of the following form: > > class 'std::vector<_Ty>' needs to have dll-interface to be used by clients > of class > > However, the 3 remaining errors remain the same without that preprocessor > diretive: > > Generating Code... > Linking... > Creating library .\Release/Camera.lib and object .\Release/ Camera.exp > Filters.obj : error LNK2019: unresolved external symbol > "__declspec(dllimport) public: static class > log4cxx::helpers::ObjectPtrT<class log4cxx::Level> const & __stdcall > log4cxx::Level::getInfo(void)" > (__imp_?getInfo@Level@log4cxx@@SGABV?$ObjectPtrT@VLevel@log4cxx@@@helpers@ > 2@XZ) referenced in function "int __stdcall convert(unsigned char *,int > &,int &)" (?convert@@YGHPAEAAH1@Z) > Filters.obj : error LNK2019: unresolved external symbol > "__declspec(dllimport) public: static class > log4cxx::helpers::ObjectPtrT<class log4cxx::Logger> __stdcall > log4cxx::Logger::getLogger(char const * const)" > (__imp_?getLogger@Logger@log4cxx@@SG?AV?$ObjectPtrT@VLogger@log4cxx@@@help > ers@2@QBD@Z) referenced in function "void __cdecl `dynamic initializer for > 'logger''(void)" (??__Elogger@@YAXXZ) > ..\Bin\ Camera.ax : fatal error LNK1120: 2 unresolved externals > > One difference that comes to mind is that the first project I mentioned > that I used the logger flawlessly with, it's configuration type is set to > application (.exe), while the project that is failing is a Dynamic Library > (.dll) (I'm building a DirectShow filter). I can't imagine what > differences there would be as far as logging is concerned but maybe it > will give someone more insight on my problem. > > For completeness, I've also now linked with the static lib, and added the > preprocessor directive and get the same two unresolved symbol errors with > an additional unresolved symbol error (note: I also linked 3 more libs > that were generated statically log4cxx.lib apr-1.lib aprutil-1.lib > cppunit.lib: > > > Filters.obj : error LNK2019: unresolved external symbol "public: static > class log4cxx::helpers::ObjectPtrT<class log4cxx::Level> const & __stdcall > log4cxx::Level::getInfo(void)" > (?getInfo@Level@log4cxx@@SGABV?$ObjectPtrT@VLevel@log4cxx@@@helpers@2@XZ) > referenced in function "int __stdcall convert(unsigned char *,int &,int > &)" (?convert@@YGHPAEAAH1@Z) > Filters.obj : error LNK2019: unresolved external symbol "public: static > class log4cxx::helpers::ObjectPtrT<class log4cxx::Logger> __stdcall > log4cxx::Logger::getLogger(char const * const)" > (?getLogger@Logger@log4cxx@@SG?AV?$ObjectPtrT@VLogger@log4cxx@@@helpers@2@ > QBD@Z) referenced in function "void __cdecl `dynamic initializer for > 'logger''(void)" (??__Elogger@@YAXXZ) > apr-1.lib(sendrecv.obj) : error LNK2019: unresolved external symbol > _TransmitFile@28 referenced in function _apr_socket_sendfile@24 > > Thanks for your input > > > > -----Original Message----- > > From: Curt Arnold [mailto:carnold@xxxxxxxxxx] > > Sent: Tuesday, November 27, 2007 2:28 PM > > To: Log4CXX User > > Subject: Re: Log4cxx in my project, unresolved symbols despite hours of > > work > > > > > > On Nov 27, 2007, at 3:07 PM, Eborn, Eric D wrote: > > > > > I’m using MSVC 2008 Express Edition. I downloaded the SVN head > > > today and built it fine (after some wrestling with it), and was able > > > to use log4cxx in one project without much problem, however, I then > > > ported some of the code I had over into another MSVC project and > > > again tried to integrate log4cxx and am getting a couple of errors > > > that are stumping me: > > > > > > Linking... > > > Creating library .\Release/Camera.lib and object .\Release/ > > > Camera.exp > > > Camera.obj : error LNK2019: unresolved external symbol "public: > > > static class log4cxx::helpers::ObjectPtrT<class log4cxx::Level> > > > const & __stdcall log4cxx::Level::getInfo(void)" (? > > > getInfo@Level@log4cxx@@SGABV? > > > $ObjectPtrT@VLevel@log4cxx@@@helpers@2@XZ) referenced in function > > > "int __stdcall convert(unsigned char *,int &,int &)" (? > > > convert@@YGHPAEAAH1@Z) > > > Camera.obj : error LNK2019: unresolved external symbol "public: > > > static class log4cxx::helpers::ObjectPtrT<class log4cxx::Logger> > > > __stdcall log4cxx::Logger::getLogger(char const * const)" (? > > > getLogger@Logger@log4cxx@@SG?AV? > > > $ObjectPtrT@VLogger@log4cxx@@@helpers@2@QBD@Z) referenced in > > > function "void __cdecl `dynamic initializer for 'logger''(void)" (?? > > > __Elogger@@YAXXZ) > > > ..\Bin\Camera.ax : fatal error LNK1120: 2 unresolved externals > > > > > > I built the log4cxx.lib both statically and dynamically and the > > > above output is when I use the shared lib, I’ve also added the Pre- > > > processor directive LOG4CXX_STATIC. > > > > > > I’ve done everything I can think of to get this right and this > > > mailing list is my last resort ☺ I’d hate to waste your time. > > > > > > > > > > > > > > > > > > Eric Eborn, > > > Software Engineer > > > 801-545-5449 > > > eric.d.eborn@xxxxxxxx > > > > > > > > > > > > You should only set LOG4CXX_STATIC when you are linking against a > > static log4cxx library. Your message suggests that you set and tried > > to link against a shared library which I would guess would result in > > the types of messages that you see (I'd expect a declspec(import) to > > show up in the method signature if LOG4CXX_STATIC was not set). Could > > you confirm that your LOG4CXX_STATIC setting is consistent with the > > type of log4cxx library that you are linking against?
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | RE: Log4cxx in my project, unresolved symbols despite hours of work, Eborn, Eric D |
|---|---|
| Next by Date: | On Static Linking - Could not instantiate class [org.apache.log4j.ConsoleAppender], Unnikrishnan Udinoor |
| Previous by Thread: | RE: Log4cxx in my project, unresolved symbols despite hours of work, Eborn, Eric D |
| Next by Thread: | Re: Log4cxx in my project, unresolved symbols despite hours of work, Curt Arnold |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |