Получение среды Eclipse C ++, работающей с Xalan - PullRequest
2 голосов
/ 24 августа 2011

Я работал над созданием C ++ IDE на моей 64-битной Windows 7-машине.Это расстраивает, в основном из-за несовместимости 32- и 64-битных программ, использующих Eclipse IDE для разработчиков на C / C ++

Что ж, наконец-то я получил компиляцию HelloWorld, теперь я хочу добавить Xalan вмой проект.Я скачал как исходный код, так и двоичные файлы.Получение исходного кода для компиляции в MinGW (мой любимый компилятор) было невозможно, но я работаю над использованием .lib-файлов в двоичном каталоге, таком как xerces-c_2.lib.Могу ли я просто связать их с моим проектом C ++, и если да, то как мне это сделать?

Спасибо!

РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ 2011-08-30

У меня просто нетповезло, но я хотел опубликовать обновление.Я пытался построить это за пределами Затмения без успеха.Я пытаюсь создать пример StreamTransform.cpp, который поставляется вместе с Xalan-C.Он находится в каталоге со связанным с ним заголовочным файлом: 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 * 10 * 25 * 25 * 25 *' ''

Мне кажется, что это какая-то ошибка компоновки библиотеки, но что? Я не должен упоминать, что есть шесть .lib файлов, связанных с бинарным дистрибутивом Windows, который я использую. Половина из них имеет суффикс: _dкак в xerces-c_2 * d *, которые представляют библиотеки отладки. Я пробовал как включать, так и пропускать их, но безрезультатно.

Я слышал, что этот проект заброшен и задаюсь вопросом,У меня просто проблемы, потому что я компилирую на 64-битной машине Windows 7 ...

Ответы [ 2 ]

0 голосов
/ 26 июня 2017

Это, вероятно, вызвано ошибкой XALANC-643 , которая была исправлена ​​ этим коммитом . Ошибка возникает при компиляции Xalan-C в среде, где был включен флаг компоновщика - как-необходимый. Вы можете использовать более свежую версию или исправить ее вручную, переместив библиотеки в конец команды link. Используя src / xalanc / Utils / 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)
0 голосов
/ 14 сентября 2011

Невозможно связать библиотеку C ++, созданную с помощью Microsoft Visual C ++, с объектами или библиотеками, созданными с помощью mingw.ABI не совместим.

Моя предпочтительная поисковая система не дает никаких ссылок на существующие двоичные файлы Xalan / Xerces mingw, поэтому вам, вероятно, придется создавать их самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...