Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Can someone teach me how to compile FDK-AAC to .exe? (Read 7714 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Can someone teach me how to compile FDK-AAC to .exe?

I've been attempting to compile this for use with MeGUI

https://github.com/mstorsjo/fdk-aac

I feel like I've came really close but can never fully get it.

I have used a media auto builder that has fdk 1.0 for use, but I want to learn/compile the latest for use with MeGUI. I was able to figure out how to do it with handbrake easy enough following some instructions, however compiling this to an .exe I just can't figure out.

I have no knowledge of code. I have learned some of ubuntu/etc the last week figuring out the hand brake stuff. IF someone could teach me/set me on the right path that would be great.

I am attempting to compile it via MSYS2 but I just can't quite figure it out.



Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #3
Just tried myself to see if it actually works, well, it does! ;-)

Code: [Select]
Sergei@Netbook MINGW32 /c/gimmeaac
$ pacman -Syu --needed mingw-w64-i686-fdk-aac
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
warning: mingw-w64-i686-fdk-aac-2.0.0-1 is up to date -- skipping
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
 there is nothing to do

Sergei@Netbook MINGW32 /c/gimmeaac
$ curl -kL https://github.com/nu774/fdkaac/archive/master.zip -o master.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   117    0   117    0     0    211      0 --:--:-- --:--:-- --:--:--   211
100  103k    0  103k    0     0  55578      0 --:--:--  0:00:01 --:--:--  154k

Sergei@Netbook MINGW32 /c/gimmeaac
$ unzip -q master.zip

Sergei@Netbook MINGW32 /c/gimmeaac
$ cd fdkaac-master/

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ autoreconf -i
configure.ac:12: installing './compile'
configure.ac:47: installing './config.guess'
configure.ac:47: installing './config.sub'
configure.ac:10: installing './install-sh'
configure.ac:10: installing './missing'
Makefile.am: installing './depcomp'

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ ./configure --quiet CFLAGS="-O3 -static"

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ make --silent

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ strip --strip-unneeded fdkaac.exe

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ ./fdkaac.exe | head
fdkaac 1.0.0
Usage: fdkaac [options] input_file
Options:
 -h, --help                    Print this help message
 -p, --profile <n>             Profile (audio object type)
                                 2: MPEG-4 AAC LC (default)
                                 5: MPEG-4 HE-AAC (SBR)
                                29: MPEG-4 HE-AAC v2 (SBR+PS)
                                23: MPEG-4 AAC LD
                                39: MPEG-4 AAC ELD


of course you have to have autoconf, automake, make, not sure if they installed by default. just do something like

Code: [Select]
pacman -Syu automake autoconf make

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #4
Just tried myself to see if it actually works, well, it does! ;-)

Code: [Select]
Sergei@Netbook MINGW32 /c/gimmeaac
$ pacman -Syu --needed mingw-w64-i686-fdk-aac
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
warning: mingw-w64-i686-fdk-aac-2.0.0-1 is up to date -- skipping
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
 there is nothing to do

Sergei@Netbook MINGW32 /c/gimmeaac
$ curl -kL https://github.com/nu774/fdkaac/archive/master.zip -o master.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   117    0   117    0     0    211      0 --:--:-- --:--:-- --:--:--   211
100  103k    0  103k    0     0  55578      0 --:--:--  0:00:01 --:--:--  154k

Sergei@Netbook MINGW32 /c/gimmeaac
$ unzip -q master.zip

Sergei@Netbook MINGW32 /c/gimmeaac
$ cd fdkaac-master/

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ autoreconf -i
configure.ac:12: installing './compile'
configure.ac:47: installing './config.guess'
configure.ac:47: installing './config.sub'
configure.ac:10: installing './install-sh'
configure.ac:10: installing './missing'
Makefile.am: installing './depcomp'

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ ./configure --quiet CFLAGS="-O3 -static"

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ make --silent

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ strip --strip-unneeded fdkaac.exe

Sergei@Netbook MINGW32 /c/gimmeaac/fdkaac-master
$ ./fdkaac.exe | head
fdkaac 1.0.0
Usage: fdkaac [options] input_file
Options:
 -h, --help                    Print this help message
 -p, --profile <n>             Profile (audio object type)
                                 2: MPEG-4 AAC LC (default)
                                 5: MPEG-4 HE-AAC (SBR)
                                29: MPEG-4 HE-AAC v2 (SBR+PS)
                                23: MPEG-4 AAC LD
                                39: MPEG-4 AAC ELD


of course you have to have autoconf, automake, make, not sure if they installed by default. just do something like

Code: [Select]
pacman -Syu automake autoconf make

Why is the version saying FDK 1.0 when the Git is FDK 2.0?

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #5
you are confusing fdk-aac and fdkaac. sorry, it's kinda night in here, i'm off to sleep.

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #6
So what is the difference. Is FDK 1.0 the latest version?

 

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #7
checking fdk-aac/aacenc_lib.h usability... no
checking fdk-aac/aacenc_lib.h presence... no
checking for fdk-aac/aacenc_lib.h... no
configure: error: libfdk-aac is required

Is the error I get when trying to compile.

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #8
It's hard to understand your problem since your post doesn't explain what you are doing exactly. OK, let's do some guessing.
Msys2 have three way of running (or three shells if you wish): MSYS, MINGW32, MINGW64. You should run MINGW32 or MINGW64.
As you can see in my post (you did read my post with long log, right?) I used MINGW32.
Maybe you run MINGW64? Then you should install x64-bit fdk-aac library instead of x32. To do so run

Code: [Select]
pacman -Syu --needed mingw-w64-x86_64-fdk-aac

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #9
It's hard to understand your problem since your post doesn't explain what you are doing exactly. OK, let's do some guessing.
Msys2 have three way of running (or three shells if you wish): MSYS, MINGW32, MINGW64. You should run MINGW32 or MINGW64.
As you can see in my post (you did read my post with long log, right?) I used MINGW32.
Maybe you run MINGW64? Then you should install x64-bit fdk-aac library instead of x32. To do so run

Code: [Select]
pacman -Syu --needed mingw-w64-x86_64-fdk-aac

Coould you possibly write me a tutorial with proper progarms/packages to install and all the commands to do this?

I'm getting the fdkaac.exe now but I'm only getting a 1500kb version of it which can't be right.

This is what I did

Code: [Select]
jlwServer@jlwServer MSYS ~
$ pacman -Syu --needed mingw-w64-i686-fdk-aa
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
error: target not found: mingw-w64-i686-fdk-aa

jlwServer@jlwServer MSYS ~
$ pacman -Syu --needed mingw-w64-x86_64-fdk-aac
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
warning: mingw-w64-x86_64-fdk-aac-2.0.0-1 is up to date -- skipping
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
 there is nothing to do

jlwServer@jlwServer MSYS ~
$ cd c:

jlwServer@jlwServer MSYS /c
$ cd work2

jlwServer@jlwServer MSYS /c/work2
$ cd fdkaac-master

jlwServer@jlwServer MSYS /c/work2/fdkaac-master
$ autoreconf -i

jlwServer@jlwServer MSYS /c/work2/fdkaac-master
$ ./configure --quiet CFLAGS="-O3 -static"
configure: error: libfdk-aac is required

jlwServer@jlwServer MSYS /c/work2/fdkaac-master
$ cd

jlwServer@jlwServer MSYS ~
$ cd c:

jlwServer@jlwServer MSYS /c
$ cd work

jlwServer@jlwServer MSYS /c/work
$ cd fdkaac-master
-bash: cd: fdkaac-master: No such file or directory

jlwServer@jlwServer MSYS /c/work
$ cd fdk-aac-master

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ ./configure
configure: loading site script /etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '197609' is supported by ustar format... yes
checking whether GID '197121' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
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 whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking build system type... x86_64-pc-msys
checking host system type... x86_64-pc-msys
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/x86_64-pc-msys/bin/ld.exe
checking if the linker (/usr/x86_64-pc-msys/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... no, using cp -pR
checking the maximum length of command line arguments... 8192
checking how to convert x86_64-pc-msys file names to x86_64-pc-msys format... func_convert_file_noop
checking how to convert x86_64-pc-msys file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-msys/bin/ld.exe option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for dlltool... dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -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 for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/x86_64-pc-msys/bin/ld.exe) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/x86_64-pc-msys/bin/ld.exe
checking if the linker (/usr/x86_64-pc-msys/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (/usr/x86_64-pc-msys/bin/ld.exe) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/x86_64-pc-msys/bin/ld.exe) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for library containing sin... none required
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating fdk-aac.pc
config.status: executing depfiles commands
config.status: executing libtool commands

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ make
make: Nothing to be done for 'all'.

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ stip --stip-unneeded fdkaac.exe
-bash: stip: command not found

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ strip --stip-unneeded fdkaac.exe
strip: unrecognized option `--stip-unneeded'
Usage: strip <option(s)> in-file(s)
 Removes symbols and sections from files
 The options are:
  -I --input-target=<bfdname>      Assume input file is in format <bfdname>
  -O --output-target=<bfdname>     Create an output file in format <bfdname>
  -F --target=<bfdname>            Set both input and output format to <bfdname>
  -p --preserve-dates              Copy modified/access timestamps to the output
  -D --enable-deterministic-archives
                                   Produce deterministic output when stripping archives
  -U --disable-deterministic-archives
                                   Disable -D behavior (default)
  -R --remove-section=<name>       Also remove section <name> from the output
     --remove-relocations <name>   Remove relocations from section <name>
  -s --strip-all                   Remove all symbol and relocation information
  -g -S -d --strip-debug           Remove all debugging symbols & sections
     --strip-dwo                   Remove all DWO sections
     --strip-unneeded              Remove all symbols not needed by relocations
     --only-keep-debug             Strip everything but the debug information
  -M  --merge-notes                Remove redundant entries in note sections (default)
      --no-merge-notes             Do not attempt to remove redundant notes
  -N --strip-symbol=<name>         Do not copy symbol <name>
  -K --keep-symbol=<name>          Do not strip symbol <name>
     --keep-file-symbols           Do not strip file symbol(s)
  -w --wildcard                    Permit wildcard in symbol comparison
  -x --discard-all                 Remove all non-global symbols
  -X --discard-locals              Remove any compiler-generated symbols
  -v --verbose                     List all object files modified
  -V --version                     Display this program's version number
  -h --help                        Display this output
     --info                        List object formats & architectures supported
  -o <file>                        Place stripped output into <file>
strip: supported targets: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf32-iamcu elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ ./fdkaac.exe | head
-bash: ./fdkaac.exe: No such file or directory

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ ./fdkaac.exe
-bash: ./fdkaac.exe: No such file or directory

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$ ./fdkaac.exe
-bash: ./fdkaac.exe: No such file or directory

jlwServer@jlwServer MSYS /c/work/fdk-aac-master
$

Like do I install msys2 or mingw installer package that has msys 1.0 in it?

MY c drive is a mess lol

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #10
OK you run MSYS shell, das ist wrong.

Like I said before msys2 has three modes: MSYS, MINGW32 and MINGW64. After you install msys2 you should get shortcuts for them in the Windows Start menu (maybe in some submenu). OR better just open the directory where you installed msys2 to and run mingw32.exe (if you want to build 32-bit executable) or mingw64.exe (for 64-bit exec).
You'll get the similar prompt but there will be "MINGW32" or "MINGW64".

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #11
I'm pretty sure I got it

Code: [Select]
jlwServer@jlwServer MINGW64 ~
# cd c:

jlwServer@jlwServer MINGW64 /c
# cd aac64

jlwServer@jlwServer MINGW64 /c/aac64
# pacman -Syu --needed mingw-w64-x86_64-fdk-aac
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
warning: mingw-w64-x86_64-fdk-aac-2.0.0-1 is up to date -- skipping
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
 there is nothing to do

jlwServer@jlwServer MINGW64 /c/aac64
# curl -kL https://github.com/nu774/fdkaac/archive/master.zip -o master.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   117    0   117    0     0    497      0 --:--:-- --:--:-- --:--:--   497
100  103k    0  103k    0     0   188k      0 --:--:-- --:--:-- --:--:--  552k

jlwServer@jlwServer MINGW64 /c/aac64
# unzip -q master.zip

jlwServer@jlwServer MINGW64 /c/aac64
# cd fdkaac-master

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# autoreconf -i
configure.ac:12: installing './compile'
configure.ac:47: installing './config.guess'
configure.ac:47: installing './config.sub'
configure.ac:10: installing './install-sh'
configure.ac:10: installing './missing'
Makefile.am: installing './depcomp'

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# ./configure --quiet CFLAGS="-O3 -static"

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# make
make  all-am
make[1]: Entering directory '/c/aac64/fdkaac-master'
depbase=`echo src/aacenc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/aacenc.o -MD -MP -MF $depbase.Tpo -c -o src/aacenc.o src/aacenc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/caf_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/caf_reader.o -MD -MP -MF $depbase.Tpo -c -o src/caf_reader.o src/caf_reader.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/extrapolater.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/extrapolater.o -MD -MP -MF $depbase.Tpo -c -o src/extrapolater.o src/extrapolater.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/limiter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/limiter.o -MD -MP -MF $depbase.Tpo -c -o src/limiter.o src/limiter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/lpc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/lpc.o -MD -MP -MF $depbase.Tpo -c -o src/lpc.o src/lpc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/m4af.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/m4af.o -MD -MP -MF $depbase.Tpo -c -o src/m4af.o src/m4af.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o src/main.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/metadata.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/metadata.o -MD -MP -MF $depbase.Tpo -c -o src/metadata.o src/metadata.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/parson.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/parson.o -MD -MP -MF $depbase.Tpo -c -o src/parson.o src/parson.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_float_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/pcm_float_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_float_converter.o src/pcm_float_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_native_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/pcm_native_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_native_converter.o src/pcm_native_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_readhelper.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/pcm_readhelper.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_readhelper.o src/pcm_readhelper.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_sint16_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/pcm_sint16_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_sint16_converter.o src/pcm_sint16_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/progress.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/progress.o -MD -MP -MF $depbase.Tpo -c -o src/progress.o src/progress.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/wav_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/wav_reader.o -MD -MP -MF $depbase.Tpo -c -o src/wav_reader.o src/wav_reader.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/compat_win32.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.     -O3 -static -MT src/compat_win32.o -MD -MP -MF $depbase.Tpo -c -o src/compat_win32.o src/compat_win32.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc  -O3 -static   -o fdkaac.exe src/aacenc.o src/caf_reader.o src/extrapolater.o src/limiter.o src/lpc.o src/m4af.o src/main.o src/metadata.o src/parson.o src/pcm_float_converter.o src/pcm_native_converter.o src/pcm_readhelper.o src/pcm_sint16_converter.o src/progress.o src/wav_reader.o  src/compat_win32.o  -liconv -lfdk-aac -lm -lfdk-aac
make[1]: Leaving directory '/c/aac64/fdkaac-master'

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# strip --strip-unneeded fdkaac.exe

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# ./fdkaac.exe
fdkaac 1.0.0
Usage: fdkaac [options] input_file
Options:
 -h, --help                    Print this help message
 -p, --profile <n>             Profile (audio object type)
                                 2: MPEG-4 AAC LC (default)
                                 5: MPEG-4 HE-AAC (SBR)
                                29: MPEG-4 HE-AAC v2 (SBR+PS)
                                23: MPEG-4 AAC LD
                                39: MPEG-4 AAC ELD
 -b, --bitrate <n>             Bitrate in bits per seconds (for CBR)
 -m, --bitrate-mode <n>        Bitrate configuration
                                 0: CBR (default)
                                 1-5: VBR
                               (VBR mode is not officially supported, and
                                works only on a certain combination of
                                parameter settings, sample rate, and
                                channel configuration)
 -w, --bandwidth <n>           Frequency bandwidth in Hz (AAC LC only)
 -a, --afterburner <n>         Afterburner
                                 0: Off
                                 1: On(default)
 -L, --lowdelay-sbr <-1|0|1>   Configure SBR activity on AAC ELD
                                -1: Use ELD SBR auto configurator
                                 0: Disable SBR on ELD (default)
                                 1: Enable SBR on ELD
 -s, --sbr-ratio <0|1|2>       Controls activation of downsampled SBR
                                 0: Use lib default (default)
                                 1: downsampled SBR (default for ELD+SBR)
                                 2: dual-rate SBR (default for HE-AAC)
 -f, --transport-format <n>    Transport format
                                 0: RAW (default, muxed into M4A)
                                 1: ADIF
                                 2: ADTS
                                 6: LATM MCP=1
                                 7: LATM MCP=0
                                10: LOAS/LATM (LATM within LOAS)
 -C, --adts-crc-check          Add CRC protection on ADTS header
 -h, --header-period <n>       StreamMuxConfig/PCE repetition period in
                               transport layer

 -o <filename>                 Output filename
 -G, --gapless-mode <n>        Encoder delay signaling for gapless playback
                                 0: iTunSMPB (default)
                                 1: ISO standard (edts + sgpd)
                                 2: Both
 --include-sbr-delay           Count SBR decoder delay in encoder delay
                               This is not iTunes compatible, but is default
                               behavior of FDK library.
 -I, --ignorelength            Ignore length of WAV header
 -S, --silent                  Don't print progress messages
 --moov-before-mdat            Place moov box before mdat box on m4a output
 --no-timestamp                Don't inject timestamp in the file

Options for raw (headerless) input:
 -R, --raw                     Treat input as raw (by default WAV is
                               assumed)
 --raw-channels <n>            Number of channels (default: 2)
 --raw-rate     <n>            Sample rate (default: 44100)
 --raw-format   <spec>         Sample format, default is "S16L".
                               Spec is as follows:
                                1st char: S(igned)|U(nsigned)|F(loat)
                                2nd part: bits per channel
                                Last char: L(ittle)|B(ig)
                               Last char can be omitted, in which case L is
                               assumed. Spec is case insensitive, therefore
                               "u16b" is same as "U16B".

Tagging options:
 --title <string>
 --artist <string>
 --album <string>
 --genre <string>
 --date <string>
 --composer <string>
 --grouping <string>
 --comment <string>
 --album-artist <string>
 --track <number[/total]>
 --disk <number[/total]>
 --tempo <n>
 --tag <fcc>:<value>          Set iTunes predefined tag with four char code.
 --tag-from-file <fcc>:<filename>
                              Same as above, but value is read from file.
 --long-tag <name>:<value>    Set arbitrary tag as iTunes custom metadata.
 --tag-from-json <filename[?dot_notation]>
                              Read tags from JSON. By default, tags are
                              assumed to be direct children of the root
                              object(dictionary).
                              Optionally, position of the dictionary
                              that contains tags can be specified with
                              dotted notation.
                              Example:
                                --tag-from-json /path/to/json?format.tags

jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
#

I made the 32 bit version and the 64 bit version.

Any reason why the 64 bit version is slightly smaller like 20ish kbs smaller then the 32 bit version?

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #12
congrats!

Quote
Any reason why the 64 bit version is slightly smaller like 20ish kbs smaller then the 32 bit version?

have no idea, different architecture, different compilers and so on. i doubt it matters actually.

Re: Can someone teach me how to compile FDK-AAC to .exe?

Reply #13
Thanks for the help!