使用gcc编译基于DocxFactory的应用程序

时间:2017-01-11 12:36:32

标签: c++ linux gcc docx

我正在尝试从DocxFactory编译一个最小的例子。该示例来自C++ Tutorial

执行以下步骤:

top_level.cpp:

#include "WordProcessingCompiler.h"
#include <exception>
#include <iostream>
#include <ctime>
using namespace DocxFactory;
using namespace std;
int main()
{
    try
    {
        WordProcessingCompiler& l_compiler =
            WordProcessingCompiler::getInstance();
        time_t l_start = clock();
        l_compiler.compile(
            "/opt/DocxFactory/exercises/templates/top_level_items.docx",
            "/opt/DocxFactory/exercises/templates/top_level_items.dfw");
        cout<< "Completed (in "
            << (double) (clock() - l_start) / CLOCKS_PER_SEC
            << " seconds)."
            << endl;
    }
    catch (const exception& p_exception)
    {
        cout << p_exception.what() << endl;
    }
}

之后,它将按照教程中的说明编译:

g++ -c top_level.cpp /opt/DocxFactory/src/WordProcessingCompiler.cpp /opt/DocxFactory/src/WordProcessingMerger.cpp -I/opt/DocxFactory/include

最后,链接失败了

g++ -o top_level top_level.o WordProcessingCompiler.o WordProcessingMerger.o -L/opt/DocxFactory/lib -lDocxFactory
//opt/DocxFactory/lib/libDocxFactoryLib.so: undefined reference to `ZBarcode_Export'
collect2: error: ld returned 1 exit status

由于这是链接错误,因此很明显缺少一个或多个其他动态库。

问题

  • 其他人是否遇到过同样的问题并且已经解决了?
  • 哪个库包含名称为ZBarcode_Export?
  • 的函数或类

1 个答案:

答案 0 :(得分:1)

DocxFactory使用Zint生成条形码。 libzint.so是Zint共享库。

您是否设置了LD_LIBRARY_PATH或使用了ldconfig?

亲切的问候, 阿龙