error building makemkv-oss-1.9.3

The place to discuss linux version of MakeMKV
Post Reply
alsocurious
Posts: 3
Joined: Tue Jun 03, 2014 9:32 pm

error building makemkv-oss-1.9.3

Post by alsocurious »

Building makemkv-oss-1.9.3 aborts from errors of which the first is this

In file included from libffabi/src/dcadec/core_decoder.cpp:22:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);

Rebuilding makemkv-oss-1.9.2 exhibit no errors
lotw01
Posts: 8
Joined: Thu Jun 04, 2015 12:25 am

Re: error building makemkv-oss-1.9.3

Post by lotw01 »

alsocurious wrote:Building makemkv-oss-1.9.3 aborts from errors of which the first is this

In file included from libffabi/src/dcadec/core_decoder.cpp:22:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);

Rebuilding makemkv-oss-1.9.2 exhibit no errors
You need to add more information. What distro and version of it are you using (for instance I am using Ubuntu Gnome 15.04 64-bit). From the looks of the error you are not running a 64-bit version.
fulwood_jp
Posts: 3
Joined: Thu Jun 04, 2015 1:47 am

Re: error building makemkv-oss-1.9.3

Post by fulwood_jp »

> Building makemkv-oss-1.9.3 aborts from errors of which the first is this
>
> In file included from libffabi/src/dcadec/core_decoder.cpp:22:0:
> libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
> libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
> return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);

Same for me.
My OS is openSUSE 12.3 x86_64, that is 64bit OS.

Thanks,
alsocurious
Posts: 3
Joined: Tue Jun 03, 2014 9:32 pm

Re: error building makemkv-oss-1.9.3

Post by alsocurious »

The build system is the official Fedora 19 for 32 bit unmodified fully up to date.

uname -a
Linux localhost.localdomain 3.14.27-100.fc19.i686.PAE #1 SMP Wed Dec 17 19:56:19 UTC 2014 i686 i686 i386 GNU/Linux

cd makemkv-oss-1.9.3/
[makemkv-oss-1.9.3]$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for -objcopy... no
checking for objcopy... objcopy
checking for -ld... no
checking for ld... ld
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for compress2 in -lz... yes
checking openssl/opensslconf.h usability... yes
checking openssl/opensslconf.h presence... yes
checking for openssl/opensslconf.h... yes
checking for AES_encrypt in -lcrypto... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate in -lexpat... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ffmpeg... yes
checking whether LIBAVCODEC_VERSION_MAJOR is declared... yes
checking LIBAVCODEC_VERSION_MAJOR... 54
checking for AVFrame.nb_samples... yes
checking whether AV_SAMPLE_FMT_U8P is declared... yes
checking for avcodec_encode_audio2... yes
checking for AVCodecContext.refcounted_frames... no
checking whether avcodec_free_frame is declared... yes
checking whether av_frame_free is declared... no
checking for av_log_format_line... yes
checking for enum AVCodecID... yes
checking whether AV_CODEC_ID_NONE is declared... yes
checking whether av_frame_get_channels is declared... yes
checking whether av_frame_get_sample_rate is declared... yes
checking whether av_frame_set_channel_layout is declared... yes
checking for AVCodecParserContext.duration... yes
checking whether AV_CH_TOP_BACK_CENTER is declared... yes
checking for qt5... no
checking for qt4... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libffabi/src/ffabicfg.h


[makemkv-oss-1.9.3]$ make
mkdir -p out
gcc -g -O2 -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libdriveio.so.0.full -Ilibdriveio/inc libdriveio/src/infolist.cpp libdriveio/src/scsihlp.cpp libdriveio/src/srlist.cpp libdriveio/src/stdquery.cpp libdriveio/src/tipclient.cpp libdriveio/src/tipcommon.cpp libdriveio/src/tipserver.cpp libdriveio/src/drives/pioneer.cpp libdriveio/src/drives/xboxhddvd.cpp \
-fPIC -Xlinker -dy -Xlinker --version-script=libdriveio/src/libdriveio.vers \
-Xlinker -soname=libdriveio.so.0 -lc -lstdc++
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0
mkdir -p tmp
echo "#define BUILDINFO_ARCH_NAME \"i686-redhat-linux\"" >> tmp/gen_buildinfo.h
echo "#define BUILDINFO_BUILD_DATE \"Thu Jun 4 20:05:46 CEST 2015\"" >> tmp/gen_buildinfo.h
mkdir -p out
gcc -g -O2 -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -DEBML_DEBUG -Ilibmatroska/inc \
-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc -DDCA_LOG -DDCA_FFMALLOC \
libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxVersion.cpp libmatroska/src/KaxSemantic.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp libmakemkv/src/stdstring.cpp sstring/src/sstring.cpp \
libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/src/libm.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c libffabi/src/audio_mix.c libffabi/src/audio_mix_matrix.c libffabi/src/dcadec/bitstream.cpp libffabi/src/dcadec/core_decoder.cpp libffabi/src/dcadec/dca_context.cpp libffabi/src/dcadec/dmix_tables.cpp libffabi/src/dcadec/exss_parser.cpp libffabi/src/dcadec/idct_fixed.cpp libffabi/src/dcadec/interpolator.cpp libffabi/src/dcadec/interpolator_fixed.cpp libffabi/src/dcadec/interpolator_float.cpp libffabi/src/dcadec/ta.cpp libffabi/src/dcadec/xll_decoder.cpp \
-DHAVE_BUILDINFO_H -Itmp -I/usr/include/ffmpeg \
-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -lavcodec -lavutil -lm -lrt
In file included from libffabi/src/dcadec/core_decoder.cpp:22:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
^
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
^
In file included from libffabi/src/dcadec/common.h:31:0,
from libffabi/src/dcadec/core_decoder.cpp:19:
libffabi/src/dcadec/core_decoder.cpp: In function ‘void dequantize(int*, const int*, int, int, bool)’:
libffabi/src/dcadec/core_decoder.cpp:519:54: error: ‘INT64_C’ was not declared in this scope
int nbits = 64 - dca_clz64(step_scale | INT64_C(1));
^
libffabi/src/dcadec/compiler.h:28:41: note: in definition of macro ‘dca_clz64’
#define dca_clz64(x) __builtin_clzll(x)
^
libffabi/src/dcadec/core_decoder.cpp: In function ‘int parse_subframe_audio(core_decoder*, int, header_type, int, int*, int*)’:
libffabi/src/dcadec/core_decoder.cpp:710:44: error: ‘INT64_C’ was not declared in this scope
int64_t err = INT64_C(0);
^
libffabi/src/dcadec/core_decoder.cpp: In function ‘int core_filter(core_decoder*, int)’:
libffabi/src/dcadec/core_decoder.cpp:979:47: error: ‘INT64_C’ was not declared in this scope
int64_t res1 = INT64_C(2097471) * samples[n] + INT64_C(6291137) * history;
^
libffabi/src/dcadec/core_decoder.cpp: In function ‘int parse_x96_subframe_audio(x96_decoder*, int, int, int*)’:
libffabi/src/dcadec/core_decoder.cpp:1441:44: error: ‘INT64_C’ was not declared in this scope
int64_t err = INT64_C(0);
^
In file included from libffabi/src/dcadec/dca_context.cpp:23:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
^
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
^
In file included from libffabi/src/dcadec/idct_fixed.cpp:20:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
^
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
^
libffabi/src/dcadec/idct_fixed.cpp: In function ‘void dct_a(const int*, int*)’:
libffabi/src/dcadec/idct_fixed.cpp:71:32: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
In file included from libffabi/src/dcadec/interpolator_fixed.cpp:21:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
^
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
^
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_lfe_fixed_fir(int*, int*, int, bool, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:37:36: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_sub32_fixed(interpolator*, int*, int**, int**, int, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:88:36: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
libffabi/src/dcadec/interpolator_fixed.cpp:103:36: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_sub64_fixed(interpolator*, int*, int**, int**, int, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:162:36: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
libffabi/src/dcadec/interpolator_fixed.cpp:177:36: error: ‘INT64_C’ was not declared in this scope
int64_t res = INT64_C(0);
^
In file included from libffabi/src/dcadec/xll_decoder.cpp:21:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
^
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
^
libffabi/src/dcadec/xll_decoder.cpp: In function ‘void xll_filter_band_data(xll_chset*)’:
libffabi/src/dcadec/xll_decoder.cpp:487:40: error: ‘INT64_C’ was not declared in this scope
int64_t err = INT64_C(0);
^
make: *** [out/libmakemkv.so.1.full] Error 1
[makemkv-oss-1.9.3]$

As I wrote the previous version of makemkv i.e. makemkv-oss-1.9.2 still builds without errors.
lotw01
Posts: 8
Joined: Thu Jun 04, 2015 12:25 am

Re: error building makemkv-oss-1.9.3

Post by lotw01 »

" ‘int64_t round__(int64_t, int)" Here says it all, it is a 64-bit app it looks like. int64 is 64-bit and your OS is 32-bit.
tyrotex
Posts: 2
Joined: Sat Jun 06, 2015 5:59 am

Re: error building makemkv-oss-1.9.3

Post by tyrotex »

I have the same problem with makemkv-oss on up-to-date Debian wheezy 64-bit. All debian pre-requisites described in the instructions are installed.
I don't know why the various system types are detected by configure as 'x86_64-unknown-linux-gnu'
I get the same result whether I compile normally or with libfdk-aac support from ffmpeg-2.6.3.
I had no problem compiling makemkv-oss-1.9.2, previously.

Do we need a header file where ‘INT64_C’ is declared somewhere?
---
tyrotex@debian64:~/makemkv-oss-1.9.3$ uname -a
Linux debian64 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux

tyrotex@debian64:~/makemkv-oss-1.9.3$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for -objcopy... no
checking for objcopy... objcopy
checking for -ld... no
checking for ld... ld
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for compress2 in -lz... yes
checking openssl/opensslconf.h usability... yes
checking openssl/opensslconf.h presence... yes
checking for openssl/opensslconf.h... yes
checking for AES_encrypt in -lcrypto... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate in -lexpat... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ffmpeg... yes
checking whether LIBAVCODEC_VERSION_MAJOR is declared... yes
checking LIBAVCODEC_VERSION_MAJOR... 55
checking for AVFrame.nb_samples... yes
checking whether AV_SAMPLE_FMT_U8P is declared... yes
checking for avcodec_encode_audio2... yes
checking for AVCodecContext.refcounted_frames... yes
checking whether avcodec_free_frame is declared... yes
checking whether av_frame_free is declared... yes
checking for av_log_format_line... yes
checking for enum AVCodecID... yes
checking whether AV_CODEC_ID_NONE is declared... yes
checking whether av_frame_get_channels is declared... yes
checking whether av_frame_get_sample_rate is declared... yes
checking whether av_frame_set_channel_layout is declared... yes
checking for AVCodecParserContext.duration... yes
checking whether AV_CH_TOP_BACK_CENTER is declared... yes
checking for qt5... no
checking for qt4... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libffabi/src/ffabicfg.h
config.status: libffabi/src/ffabicfg.h is unchanged
tyrotex@debian64:~/makemkv-oss-1.9.3$ make
mkdir -p out
gcc -g -O2 -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libdriveio.so.0.full -Ilibdriveio/inc libdriveio/src/infolist.cpp libdriveio/src/scsihlp.cpp libdriveio/src/srlist.cpp libdriveio/src/stdquery.cpp libdriveio/src/tipclient.cpp libdriveio/src/tipcommon.cpp libdriveio/src/tipserver.cpp libdriveio/src/drives/pioneer.cpp libdriveio/src/drives/xboxhddvd.cpp \
-fPIC -Xlinker -dy -Xlinker --version-script=libdriveio/src/libdriveio.vers \
-Xlinker -soname=libdriveio.so.0 -lc -lstdc++
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0
mkdir -p tmp
echo "#define BUILDINFO_ARCH_NAME \"x86_64-linux-gnu\"" >> tmp/gen_buildinfo.h
echo "#define BUILDINFO_BUILD_DATE \"Saturday 6 June 16:05:05 AEST 2015\"" >> tmp/gen_buildinfo.h
mkdir -p out
gcc -g -O2 -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -DEBML_DEBUG -Ilibmatroska/inc \
-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc -DDCA_LOG -DDCA_FFMALLOC \
libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxVersion.cpp libmatroska/src/KaxSemantic.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp libmakemkv/src/stdstring.cpp sstring/src/sstring.cpp \
libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/src/libm.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c libffabi/src/audio_mix.c libffabi/src/audio_mix_matrix.c libffabi/src/dcadec/bitstream.cpp libffabi/src/dcadec/core_decoder.cpp libffabi/src/dcadec/dca_context.cpp libffabi/src/dcadec/dmix_tables.cpp libffabi/src/dcadec/exss_parser.cpp libffabi/src/dcadec/idct_fixed.cpp libffabi/src/dcadec/interpolator.cpp libffabi/src/dcadec/interpolator_fixed.cpp libffabi/src/dcadec/interpolator_float.cpp libffabi/src/dcadec/ta.cpp libffabi/src/dcadec/xll_decoder.cpp \
-DHAVE_BUILDINFO_H -Itmp -I/tmp/ffmpeg/include \
-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -pthread -L/tmp/ffmpeg/lib -lavcodec -lX11 -lfdk-aac -lz -lrt -lswresample -lavutil -lm -lm -lrt
In file included from libffabi/src/dcadec/core_decoder.cpp:22:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/core_decoder.cpp: In function ‘void dequantize(int*, const int*, int, int, bool)’:
libffabi/src/dcadec/core_decoder.cpp:519:22: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/core_decoder.cpp: In function ‘int parse_subframe_audio(core_decoder*, int, header_type, int, int*, int*)’:
libffabi/src/dcadec/core_decoder.cpp:710:44: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/core_decoder.cpp: In function ‘int core_filter(core_decoder*, int)’:
libffabi/src/dcadec/core_decoder.cpp:979:47: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/core_decoder.cpp: In function ‘int parse_x96_subframe_audio(x96_decoder*, int, int, int*)’:
libffabi/src/dcadec/core_decoder.cpp:1441:44: error: ‘INT64_C’ was not declared in this scope
In file included from libffabi/src/dcadec/dca_context.cpp:23:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
In file included from libffabi/src/dcadec/idct_fixed.cpp:20:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/idct_fixed.cpp: In function ‘void dct_a(const int*, int*)’:
libffabi/src/dcadec/idct_fixed.cpp:71:32: error: ‘INT64_C’ was not declared in this scope
In file included from libffabi/src/dcadec/interpolator_fixed.cpp:21:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_lfe_fixed_fir(int*, int*, int, bool, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:37:36: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_sub32_fixed(interpolator*, int*, int**, int**, int, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:88:36: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/interpolator_fixed.cpp:103:36: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/interpolator_fixed.cpp: In function ‘void interpolate_sub64_fixed(interpolator*, int*, int**, int**, int, bool)’:
libffabi/src/dcadec/interpolator_fixed.cpp:162:36: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/interpolator_fixed.cpp:177:36: error: ‘INT64_C’ was not declared in this scope
In file included from libffabi/src/dcadec/xll_decoder.cpp:21:0:
libffabi/src/dcadec/fixed_math.h: In function ‘int64_t round__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:25:31: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/fixed_math.h: In function ‘int32_t norm__(int64_t, int)’:
libffabi/src/dcadec/fixed_math.h:33:41: error: ‘INT64_C’ was not declared in this scope
libffabi/src/dcadec/xll_decoder.cpp: In function ‘void xll_filter_band_data(xll_chset*)’:
libffabi/src/dcadec/xll_decoder.cpp:487:40: error: ‘INT64_C’ was not declared in this scope
make: *** [out/libmakemkv.so.1.full] Error 1
---
Romansh
Posts: 873
Joined: Sat Jan 22, 2011 7:09 pm

Re: error building makemkv-oss-1.9.3

Post by Romansh »

You need to add -D__STDC_CONSTANT_MACROS to CFLAGS somehow.
alsocurious
Posts: 3
Joined: Tue Jun 03, 2014 9:32 pm

Re: error building makemkv-oss-1.9.3

Post by alsocurious »

Thanks Romansh

Yes - that's also what I just arrived at but without 100% certainty as follows

A search of .h, .c and .cpp shows that makemkv-oss-1.9.2 defines INT64_C locally in msvc/inc/stdint.h but does not reference the defintion whereas makemkv-oss-1.9.3 also references the definition in fx fixed_math.h in directory libffabi/src/dcadec which is new i.e. does not exist in makemkv-oss-1.9.2

INT64_C is also defined in <stdint.h> as this excerpt shows

/* The ISO C99 standard specifies that in C++ implementations these
should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS

/* Signed. */
# define INT8_C(c) c
# define INT16_C(c) c
# define INT32_C(c) c
# if __WORDSIZE == 64
# define INT64_C(c) c ## L
# else
# define INT64_C(c) c ## LL
# endif

"msvc" rings a bell as MicroSoft Visual C/C++ and msvc/inc/stdint.h is therefore likely a Windows specific file if used at all.
But this is Linux and the other definition is in <stdint.h> and enabled if __STDC_CONSTANT_MACROS is set.
Googling __STDC_CONSTANT_MACROS suggests setting both __STDC_CONSTANT_MACROS and __STDC_LIMIT_MACROS where the latter enables this section of <stdint.h>

/* The ISO C99 standard specifies that in C++ implementations these
macros should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS

# if __WORDSIZE == 64
# define __INT64_C(c) c ## L
# define __UINT64_C(c) c ## UL
# else
# define __INT64_C(c) c ## LL
# define __UINT64_C(c) c ## ULL
# endif

So - doing that using this configure command

./configure CFLAGS='-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS'

which as verified by checking the Makefile preserves other CFLAGS then make-oss-1.9.3 builds without errors.
Also a compare of the rips from running makemkv version 1.9.2 and 1.9.3 on the same test DVD shows the exact same size and no differences except among the first few thousand bytes perhaps caused only by different timestamps, version numbers and similar.
And most importantly the rip plays in VLC.

Still, it would be nice with confirmation from someone in the know that this is a 100% valid solution.
tyrotex
Posts: 2
Joined: Sat Jun 06, 2015 5:59 am

Re: error building makemkv-oss-1.9.3

Post by tyrotex »

Thanks to @Romansh for the suggestion and to @alsocurious for the details.
The compile now works fine on my Debian wheezy system.
sauron-le-noir
Posts: 5
Joined: Sun Dec 28, 2014 10:24 pm
Contact:

Re: error building makemkv-oss-1.9.3

Post by sauron-le-noir »

Thx a lot it work also here on Centos 7.1 also version 1.9.4 is working

Linux port01.fmsb.be 3.10.0-229.4.2.el7.x86_64 #1 SMP Wed May 13 10:06:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Post Reply