我一直在努力让 C++ IDE 在我的 64 位 Windows 7 机器上运行。这令人沮丧,主要是因为使用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:\Development\xslTests\stream\lib
LIBS = -lxerces-c_2 -lxerces-depdom_2 -lXalan-C_1
INCDIR = -IC:\Libs\xerces-c-windows_2000-msvc_60\include -IC:\Libs\Xalan-C_1_10_0-win32-msvc_60\include
all: transformer
transformer: $(OBJS)
$(CC) $(LFLAGS) $(OBJS) -o transformer $(LIBDIR) $(LIBS)
StreamTransform.o : StreamTransform.cpp XalanMemoryManagerImpl.hpp
$(CC) $(INCDIR) $(CFLAGS) StreamTransform.cpp
基础目标 StreamTransform.o 成功运行并生成输出文件,但转换器死亡。我在这里遇到的错误与我在 Eclipse 中遇到的错误相同。一堆“未定义的参考错误:
C:\Users\x_walia\workspace\TCXMLTransformer\Debug/../StreamTransform.cpp:115: 未定义引用`xalanc_1_10::XSLTInputSource::XSLTInputSource(std::istream*, xercesc_2_7::MemoryManager&)'
StreamTransform.o:在函数
main': C:/Libs/Xalan-C_1_10_0-win32-msvc_60/include/xalanc/XSLT/XSLTResultTarget.hpp:103: undefined reference to
xalanc_1_10::XalanMemMgrs::getDefaultXercesMemMgr()'
对我来说,这看起来像是某种库链接错误,但是什么?我不应该有六个 .lib 文件与我正在使用的 Windows 二进制发行版捆绑在一起。其中一半具有后缀:_d,如 xerces-c_2* d * 中代表调试库。我已经尝试包括和省略这些但无济于事。
我听说这个项目被放弃了,我想知道我是否只是因为我在 Windows 7 64 位机器上编译而遇到问题......