Zint: неопределенные символы для архитектуры x86_64: - PullRequest
0 голосов
/ 21 сентября 2019

Я пытался скомпилировать zint на моем устройстве iOS.Сборка статической библиотеки прошла успешно, но когда я добавляю ее в свой проект и компилирую, она говорит: Undefined symbols for architecture x86_64:

Это конкретные проблемы:

Undefined symbols for architecture x86_64:
  "_emf_plot", referenced from:
      _plot_vector in libbarcodes.a(libzint.a-x86_64-master.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я использую nm -g --defined-only libbarcodes.a длянайдите все символы:

...
000000000002e230 T _place_layer_id
000000000002df60 T _place_macromodule
0000000000068f80 T _planet
0000000000069100 T _planet_plot
000000000006a3b0 T _plessey
000000000003a930 T _plot_raster
000000000002b500 T _plot_vector
...

Я видел _plot_vector, однако _emf_plot там не было.

График emf_plot был определен в vector.c:

extern int ps_plot(struct zint_symbol *symbol);
extern int svg_plot(struct zint_symbol *symbol);
extern int emf_plot(struct zint_symbol *symbol);

switch (file_type) {
        case OUT_EPS_FILE:
            error_number = ps_plot(symbol);
            break;
        case OUT_SVG_FILE:
            error_number = svg_plot(symbol);
            break;
        case OUT_EMF_FILE:
            error_number = emf_plot(symbol);
            break;
        /* case OUT_BUFFER: No more work needed */
    }

Также есть другое определение в library.c

extern int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to EPS/EMF/SVG */

extern int render_plot(struct zint_symbol *symbol, float width, float height); /* Plot to gLabels */

//extern int ps_plot(struct zint_symbol *symbol); /* Plot to EPS */
//extern int svg_plot(struct zint_symbol *symbol); /* Plot to SVG */
//extern int emf_plot(struct zint_symbol *symbol); /* Plot to Metafile */

Я пытался раскомментировать //, но он не работал

...