这让我发疯,我试图构建log4cxx库以便在我一直在使用的c++项目中使用。我在运行VS2010 Express C++版本的Win7主机上。我已按照每个log4cxx指示()的指示进行操作,包括下载apr
和apr-util并修饰.hw文件,但不幸的是,当我尝试加载log4cxx.dsw解决方案并将其转换为当前VS时,尝试构建apr.apr/dsw和一堆错误时会收到错误消息其他相关的.dsw文件。有什么建议么?
具体来说,我看到的是:
The Project file 'C:\...projects\apr-util\xml\expat\lib\xml.dsp' cannot be loaded. Do you want to remove the unloadable project from the solution?
我看到了一堆其他的.dsp文件。
然后在VC的输出框中:
C:\Users\x\Documents\Visual Studio 2010\Projects\apr\apr.dsp : error : Project upgrade failed.
C:\Users\x\Documents\Visual Studio 2010\Projects\apr-util\xml\expat\lib\xml.dsp : error : Project upgrade failed.
C:\Users\x\Documents\Visual Studio 2010\Projects\apr-util\aprutil.dsp : error : Project upgrade failed.
C:\Users\x\Documents\Visual Studio 2010\Projects\apache-log4cxx-0.10.0\projects\log4cxx.dsp : error : Project upgrade failed.
谢谢
文件位于正确的路径中。
最佳答案
您必须按照以下步骤操作,以使log4cxx(0.10.0版)与VS2010一起使用:
apu.hw
#define APU_HAVE_APR_ICONV
,将其设置为0并保存文件apr_ldap.hw
并找到条目#define APR_HAS_LDAP
,将其设置为0并保存文件。 好吧,如果您现在点击构建,那么您将看到大约2000个错误,这是有趣且“困难”的部分开始的地方:
一些示例:
// telnetadapter.h
...
typedef log4cxx::helpers::SocketPtr Connection;
LOG4CXX_LIST_DEF(ConnectionList, Connection);
class LOG4CXX_EXPORT TelnetAppender : public AppenderSkeleton
...
// appender.h
...
class Appender;
LOG4CXX_PTR_DEF(Appender);
LOG4CXX_LIST_DEF(AppenderList, AppenderPtr);
class Layout;
typedef log4cxx::helpers::ObjectPtrT<Layout> LayoutPtr;
...
class LOG4CXX_EXPORT Appender :
public virtual spi::OptionHandler
{
...
示例:
// old
LoggingEvent::KeySet set;
// new
KeySet set;
#include <iterator>
添加到源文件的include部分。 希望这对您和其他人有帮助:) ...如果您需要整个解决方案或其他文件,请告诉我!
我在Lex LI的this博客条目的巨大帮助下找到了这些步骤。
编辑:
您可以从我的保管箱下载我的VS2010解决方案和源代码:
https://www.dropbox.com/s/rn5d0044jzgzwyf/log4cxx_vs2010.7z
关于c++ - 在vs 2010 C++中构建log4cxx,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8461123/