【问题标题】:linking problem tinylibxml C++ Ubuntu链接问题 tinylibxml C++ Ubuntu
【发布时间】:2010-12-03 14:33:24
【问题描述】:

当我尝试执行简单的 tinylibxml 程序时出现错误。

操作系统 -> Ubuntu IDE -> e 我已经通过 apt-get install 下载了 libtinyxml 并将标题包含在我的程序中 但我仍然收到错误 示例代码粘贴在下面

#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 和更多文件。 各位大侠,请指导我如何做到这一点。

谢谢

【问题讨论】:

  • 如果您也添加错误消息将很有用。添加代码时也请使用下面的格式代码按钮。它确实使它更具可读性。
  • 您遇到的错误是什么?

标签: c++ ubuntu tinyxml


【解决方案1】:

在构建时,您需要执行类似的操作

g++ -c mycode.cpp(假设你的源文件是 mycode.cpp)

这应该会生成 mycode.o

你现在需要做的:

g++ -o mycode -ltinyxml mycode.o

这是链接步骤。这会将您编译的源文件与 tinyxml 库结合起来,生成最终的可执行二进制 mycode。

对于简单的东西,您可以一步编译和链接,但对于更复杂的东西,您需要将步骤分开。

所有这些都可以使用makeMakefile 自动完成

查看The GCC Manual 了解有关编译器选项的更多信息。

【讨论】:

  • 感谢大家如此快速而有帮助的回复。
  • 问题是我没有链接 libtinyxml.a 文件。该文件位于我的 /usr/lib 中。我需要按照步骤 g++ TinyTest.cpp /usr/lib/libtinyxml.a ....... 它可以工作。类似地,我在 Eclipse 中尝试进入 project->properties->GCC C++Linker->Libraries 并在 -l 和 /usr/lib 中添加 tinyxml 到 -L /usr/lib
  • 我提到的 -l 标志应该达到同样的效果。
【解决方案2】:

tinyxml 附带一个 makefile,运行它来构建库,然后在链接行中包含该库。

编辑:@doron 为您提供了“链接库”的说明:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 2011-12-11
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多