m-ab-s / media-autobuild_suite

This Windows Batchscript helps setup a Mingw-w64 compiler environment for building ffmpeg and other media tools under Windows.
GNU General Public License v3.0
1.54k stars 267 forks source link

Missing Libarys in static builds #163

Closed nille02 closed 9 years ago

nille02 commented 9 years ago

Since the new usage of the mingw libarys, i cant launch a static ffmpeg.exe

He miss libcdio_cdda-2.dll, libcaca-0.dll, libcdio_paranoia-2.dll and libfontconfig-1.dll

wiiaboo commented 9 years ago

Apparently I didn't test enough with the full build in cmd.exe.

On 14 September 2015 at 16:24, nille02 notifications@github.com wrote:

Since the new usage of the mingw libarys, i cant launch a static ffmpeg.exe

He miss libcdio_cdda-2.dll, libcaca-0.dll, libcdio_paranoia-2.dll and libfontconfig-1.dll

— Reply to this email directly or view it on GitHub https://github.com/jb-alvarado/media-autobuild_suite/issues/163.

nille02 commented 9 years ago

For now, i reverted back to bffa6485462bf1e53a3b47bb239ba75839b63b17

I setup a new environment, maybe there was a problem in the setup, from the old to the new.

wiiaboo commented 9 years ago

I think it's do_hide_pacman_sharedlibs() not working, not the libs themselves. Trying again now with the fixes.

wiiaboo commented 9 years ago

Check if a2eaf3c9dc23b07c0a5f7bcef74ee16ef90ae255 fixed it.

wiiaboo commented 9 years ago

You may have to delete everything in /local32|64 to make sure all libs were compiled properly, if any is still complaining about missing .dlls.

nille02 commented 9 years ago

yes, but he need some time ;)

nille02 commented 9 years ago

He still miss the libs

wiiaboo commented 9 years ago

Even after deleting the /local folders?

nille02 commented 9 years ago

Local64 and the git folders in build

wiiaboo commented 9 years ago

I still haven't finished compiling 64-bits, so I can't confirm. But does it ask for the same libs and only on ffmpeg.exe?

nille02 commented 9 years ago

Everytime the same.

gif2webp miss libgif-7.dll oggdec miss libvorbisfile-3.dll oggenc miss libvorbis-0.dll and libvorbisenc-2.dll

Thats my config

[compiler list] msys2Arch=2 arch=3 free=1 vpx=1 x264=4 x265=1 other265=2 flac=1 mediainfo=2 soxB=2 ffmpegB=1 ffmpegUpdate=1 ffmpegChoice=2 mp4box=2 mplayer=2 mpv=2 cores=3 deleteSource=1 strip=1 pack=2

wiiaboo commented 9 years ago

Make sure you have all the scripts updated and delete the /local64 folder entirely. You don't need to delete /build. Those 3 should not ask for dlls if they have been compiled correctly.

Finished 64-bit build just now and other than needing to disable tesseract all works for me.

wiiaboo commented 9 years ago

Run for f in "$(find /mingw{32,64} -name *.dll.a)"; do [[ -f "$f" && -f "${f%*.dll.a}.a" ]] && echo "$f"; done in mintty and paste the results here.

nille02 commented 9 years ago

no result.

wiiaboo commented 9 years ago

Then it shouldn't be asking for dlls. If something is, you must not have deleted /local32|64 entirely to force everything to build again. I'm saying shift+delete the /local32 or /local64 folder.

nille02 commented 9 years ago

i do this 2 times and the result is still the same. he need the dlls and your search command find nothing. its also a new setup.

In this Folder is the ffmpeg.exe and the complete build chain is in the upload, but need some time its around 1,5 GB and i have only 1mbit upload. https://onedrive.live.com/redir?resid=929F74484BCB22A2!5246&authkey=!AH2C-DNNAwuNNLo&ithint=file%2crar

shinchiro commented 9 years ago

In my case (different case than OP problem), even deleting /local folder did not solve problem with compilation error. I solve by resetting the git/hg folder to its pristine state before start compile

As improvement to the script, I suggest these:

# git cleanup foreign files
git clean -f -d -x

# svn cleanup foreign files
svn cleanup --remove-unversioned --remove-ignored

# hg cleanup foreign files
hg --config "extensions.purge=" purge --all

this should solve most compilation error

wiiaboo commented 9 years ago

Sorry, I'm a fucking idiot. Fixing now.

wiiaboo commented 9 years ago

76ab188340eee29be8aed6d7124b431a302cf07c simple fix but makes all the difference.

wiiaboo commented 9 years ago

@shinchiro git runs a clean checkout every time, so no need to clean. svn would only work for mplayer and it would delete ffmpeg, forcing a reclone of it either from the web or locally and both take a shit load of time, even a shallow clone. hg would only work for x265 and we don't touch a single file outside of /build.

The curl one can be done and only be deleted if you choose to delete sources.

shinchiro commented 9 years ago

git checkout only sync changes for tracked files according to current branch. git clean I mentioned will clean (delete) all untracked files. example, configure files, *.o files which existed after configure/compile.

wiiaboo commented 9 years ago

There's no need to remove compiled files, we always run make distclean or similar. There's a lot of libs that don't have autotools stuff in the repo and it's a waste of time to generate them every time.

nille02 commented 9 years ago

Yes its fixed now, thanks for you work.