获得使用Xalan运行的Eclipse c++环境



我一直致力于在我的64位Windows 7机器上安装c++ IDE。这很令人沮丧,主要是因为使用Eclipse IDE for C/c++ Developers

的32位和64位程序的不兼容性

好了,我终于编译了HelloWorld,现在我想把Xalan添加到我的项目中。我已经下载了源代码和二进制文件。让源代码在MinGW(我选择的编译器)中编译是不可能的,但我正在使用二进制目录中的.lib文件,如xerces-c_2.lib。我可以把这些链接到我的c++项目,如果是这样,我怎么做?

谢谢!

编辑更新2011-08-30

我只是没有任何运气,但我想发布一个更新。我尝试在Eclipse之外构建它,但没有成功。我正在尝试创建与Xalan-C捆绑在一起的StreamTransform.cpp示例。它在与其相关的头文件的目录中:XalanMemoryManagerImpl.hpp

然后我创建了以下Makefile:

OBJS = StreamTransform.o
CC = g++
DEBU G = -g
CFLAGS = -Wall -c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
LIBDIR = -LC:DevelopmentxslTestsstreamlib
LIBS = -lxerces-c_2 -lxerces-depdom_2 -lXalan-C_1 
INCDIR = -IC:Libsxerces-c-windows_2000-msvc_60include -IC:LibsXalan-C_1_10_0-win32-msvc_60include
all: transformer
transformer: $(OBJS)
  $(CC) $(LFLAGS) $(OBJS) -o transformer $(LIBDIR) $(LIBS) 
StreamTransform.o : StreamTransform.cpp XalanMemoryManagerImpl.hpp
  $(CC) $(INCDIR) $(CFLAGS) StreamTransform.cpp

基本目标StreamTransform。O运行成功并且生成了输出文件,但是transformer失效了。我在这里得到的错误与我在Eclipse中得到的错误相同。一堆"未定义引用错误:

C: 用户x_walia workspace TCXMLTransformer 调试/. ./StreamTransform.cpp: 115:未定义的引用' xalanc_1_10::XSLTInputSource::XSLTInputSource(std::istream*,xercesc_2_7: MemoryManager&)

StreamTransform。0: In function main': C:/Libs/Xalan-C_1_10_0-win32-msvc_60/include/xalanc/XSLT/XSLTResultTarget.hpp:103: undefined reference to xalanc_1_10:: xalanmemmgr::getDefaultXercesMemMgr()'

对我来说,这看起来像是有某种库链接错误,但是什么?我不应该知道我正在使用的Windows二进制发行版中捆绑了六个.lib文件。其中一半具有xerces-c_2*d*中的后缀:_d,表示调试库。我试过包括和省略这些,但无济于事。

我听说这个项目被放弃了,我想知道我是否只是有问题,因为我在Windows 7 64位机器上编译…

您不能将使用microsoftvisualc++构建的c++库链接到使用mingw构建的对象或库。ABI不兼容。

我的首选搜索引擎不提供任何到现有Xalan/Xerces mingw二进制文件的链接,因此您可能必须自己构建它们。

这可能是由xalac -643错误引起的,该错误已在本次提交中修复。当在启用了"按需"链接器标志的环境中编译Xalan-C时,会触发该错误。您可以使用最新的版本,也可以通过将库移动到link命令的末尾来手动修复它。使用src/xalanc/跑龙套/MsgCreator/Makefile。In作为示例:

:

${EXTRA_LINK_OPTIONS} $(LIBS) $(XERCES_LIB) $^ -o $@ $(LOC_OTHER_LINK_PARAMETERS)
:后

${EXTRA_LINK_OPTIONS} $(LIBS) $^ -o $@ $(XERCES_LIB) $(LOC_OTHER_LINK_PARAMETERS)

最新更新