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

Compile DocxFactory based application with gcc

本文关键字:DocxFactory 应用程序 gcc 编译 使用      更新时间:2023-10-16

我正在尝试从DocxFactory编译一个最小的示例。该示例取自C++教程。

执行以下步骤:

  • 下载适用于 64 位 Linux 的 DocxFactory 库
  • 按照C++教程中所述提取并安装库
  • 之后,创建了一个示例文件 (top_level.cpp)

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 的函数或类?

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

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

亲切问候阿隆