I'm trying to integrate libtiff with my Go app to avoid the cost of
creating new processes etc (since the Go app will need to invoke tiff2pdf
repeatedly and as fast as possible).
I'm having a few issues getting it to compile, even with almost no code.
These are the files I'm using:
Makefile:
all:
go build ./...
deps:
git clone [email protected]:vadz/libtiff.git
.PHONY: deps
demo.go:
package main
/*
#cgo CFLAGS: -D_THREAD_SAFE -pthread -Ilibtiff/libtiff
#include "libtiff/tools/tiff2pdf.c"
*/
import "C"
func main() {
}
When I run make, I get the following output:
go build ./...
# git.local/services/tiff2pdf
Undefined symbols for architecture x86_64:
"_TIFFClientOpen", referenced from:
_main in demo.cgo2.o
"_TIFFClientdata", referenced from:
_main in demo.cgo2.o
_t2p_write_pdf in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
_t2p_write_advance_directory in demo.cgo2.o
_t2p_write_pdf_header in demo.cgo2.o
_t2p_write_pdf_obj_start in demo.cgo2.o
...
"_TIFFClose", referenced from:
_main in demo.cgo2.o
"_TIFFError", referenced from:
_main in demo.cgo2.o
_t2p_init in demo.cgo2.o
_t2p_validate in demo.cgo2.o
_t2p_write_pdf in demo.cgo2.o
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_read_tiff_size in demo.cgo2.o
...
"_TIFFFileName", referenced from:
_t2p_write_pdf in demo.cgo2.o
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
_t2p_write_advance_directory in demo.cgo2.o
"_TIFFGetField", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_read_tiff_size in demo.cgo2.o
_t2p_read_tiff_size_tile in demo.cgo2.o
_t2p_write_pdf_info in demo.cgo2.o
_t2p_pdf_tifftime in demo.cgo2.o
"_TIFFGetFieldDefaulted", referenced from:
_t2p_read_tiff_data in demo.cgo2.o
"_TIFFGetSeekProc", referenced from:
_main in demo.cgo2.o
"_TIFFGetVersion", referenced from:
_main in demo.cgo2.o
_tiff2pdf_usage in demo.cgo2.o
"_TIFFGetWriteProc", referenced from:
_t2p_write_pdf in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
_t2p_write_pdf_header in demo.cgo2.o
_t2p_write_pdf_obj_start in demo.cgo2.o
_t2p_write_pdf_obj_end in demo.cgo2.o
_t2p_write_pdf_name in demo.cgo2.o
...
"_TIFFIsCODECConfigured", referenced from:
_t2p_read_tiff_data in demo.cgo2.o
"_TIFFIsTiled", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
"_TIFFNumberOfDirectories", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
"_TIFFNumberOfStrips", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
"_TIFFNumberOfTiles", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFOpen", referenced from:
_main in demo.cgo2.o
"_TIFFReadEncodedStrip", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
"_TIFFReadEncodedTile", referenced from:
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFReadRGBAImageOriented", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
"_TIFFReadRawStrip", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
"_TIFFReadRawTile", referenced from:
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFReverseBits", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFScanlineSize", referenced from:
_t2p_read_tiff_size in demo.cgo2.o
"_TIFFSetDirectory", referenced from:
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
"_TIFFSetField", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFStripSize", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFTileRowSize", referenced from:
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFTileSize", referenced from:
_t2p_read_tiff_size_tile in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"_TIFFWarning", referenced from:
_main in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
"_TIFFWriteDirectory", referenced from:
_t2p_write_pdf in demo.cgo2.o
_t2p_write_advance_directory in demo.cgo2.o
"_TIFFWriteEncodedStrip", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"__TIFFfree", referenced from:
_t2p_free in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
"__TIFFmalloc", referenced from:
_main in demo.cgo2.o
_t2p_init in demo.cgo2.o
_t2p_write_pdf in demo.cgo2.o
_t2p_read_tiff_init in demo.cgo2.o
_t2p_read_tiff_data in demo.cgo2.o
_t2p_readwrite_pdf_image in demo.cgo2.o
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
...
"__TIFFmemcpy", referenced from:
_t2p_readwrite_pdf_image_tile in demo.cgo2.o
_t2p_tile_collapse_left in demo.cgo2.o
"__TIFFmemset", referenced from:
_main in demo.cgo2.o
_t2p_init in demo.cgo2.o
_t2p_read_tiff_init in demo.cgo2.o
"__TIFFrealloc", referenced from:
_t2p_readwrite_pdf_image in demo.cgo2.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make: *** [all] Error 2
It seems to be suggesting it can't find the libtiff header files referenced
by tiff2pdf.c, but I've gone in circles a few times on this trying various
LDFLAGS and CFLAGS options - I either go back a step (e.g. getting
"tiff2pdf.c not found" errors), or nothing changes.
I can compile libtiff directly using its configure script and generated
Makefile, but haven't had the same luck with go build.
I'm no C expert by the way, so probably missing something really obvious :/
Any help will be appreciated!
Thanks
Ian
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.