Я пытался скомпилировать 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 */
Я пытался раскомментировать //
, но он не работал