проблема линковки tinylibxml C ++ Ubuntu - PullRequest
0 голосов
/ 03 декабря 2010

Я получаю сообщение об ошибке при попытке выполнить простую программу tinylibxml.

ОС -> Ubuntu IDE -> е У меня есть скачать libtinyxml через apt-get установить и включил заголовок в мою программу Но я все еще получаю ошибку Пример кода вставлен ниже

#include "tinyxml.h"
#define TIXML_USE_STL
#include <tinyxml.h>
void dump_to_stdout(const char* pFilename);

int main()
{
 dump_to_stdout("example1.xml");
 return 0;
}

void dump_to_stdout(const char* pFilename)
{
 TiXmlDocument doc(pFilename);
 bool loadOkay = doc.LoadFile();
 if (loadOkay)
 {
  printf("\n%s:\b", pFilename);
 }
 else
 {
  printf("Failed to load file \"%s\"\n", pFilename);
 }
}

Поскольку я занимался поиском, я обнаружил, что мне нужно включить libtinyxml.cpp и еще несколько файлов. Ребята, подскажите, пожалуйста, как это сделать.

Спасибо

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

при сборке вам нужно будет сделать что-то вроде

g++ -c mycode.cpp (при условии, что ваш исходный файл - mycode.cpp)

это должно сгенерировать mycode.o

Теперь вам нужно сделать:

g++ -o mycode -ltinyxml mycode.o

который является шагом связывания. Это объединит ваш скомпилированный исходный файл с библиотекой tinyxml для создания окончательного исполняемого двоичного файла mycode.

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

Все это можно автоматизировать с помощью make и Makefile

Посмотрите Руководство GCC для получения дополнительной информации о параметрах компилятора.

0 голосов
/ 03 декабря 2010

Существует make-файл, который поставляется с tinyxml, запустите его, чтобы собрать библиотеку, а затем включите эту библиотеку в строку ссылки.

EDIT: и @doron любезно предоставил вам инструкции для "связывания библиотеки":)

...