【发布时间】:2019-01-27 03:32:54
【问题描述】:
我目前正在尝试构建 exe/二进制文件以支持 Windows 10 上的 ffmpegthumbnailer。我阅读了多篇关于让它工作的帖子,但似乎没有一个能满足我的需求。我目前将 ffmpegthumbnailer-2.2.0 存储在 C:\ffmpegthumbnailer-2.2.0 我看到一个名为 CMakeFiles、dist、 的文件夹>kffmpegthumbnailer、libffmpegthumbnailer、man、test 和 thunar 文件。当我在目录中运行 make 时,我收到
User@User-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0/man
$ make
make: *** No targets specified and no makefile found. Stop.
如何构建/制作 exec 文件,以便使用 PATH 变量查找 ffmpegthumbnailer?
更新 1: 我尝试了 automake 命令,但收到以下消息
$ automake
/cygdrive/c/RubyDevKit/mingw/bin/automake: /cygdrive/c/RubyDevKit/mingw/bin/automake-1.11: /bin/perl: bad interpreter: No such file or directory
/cygdrive/c/RubyDevKit/mingw/bin/automake: line 156: /cygdrive/c/RubyDevKit/mingw/bin/automake-1.11: No error
更新 2:
我运行 cmake 并收到以下消息。
Coder@Coder-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build
$ cmake ../
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.14.26428.1
-- The CXX compiler identification is MSVC 19.14.26428.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studo/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studo/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmke:489 (message):
pkg-config tool not found
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmake:602 (_pkgcheck_modules_internal)
CMakeLists.txt:58 (PKG_CHECK_MODULES)
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmke:489 (message):
pkg-config tool not found
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmake:602 (_pkgcheck_modules_internal)
CMakeLists.txt:59 (PKG_CHECK_MODULES)
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmke:489 (message):
pkg-config tool not found
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmake:602 (_pkgcheck_modules_internal)
CMakeLists.txt:60 (PKG_CHECK_MODULES)
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmke:489 (message):
pkg-config tool not found
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.12/Modules/FindPkgConfig.cmake:602 (_pkgcheck_modules_internal)
CMakeLists.txt:61 (PKG_CHECK_MODULES)
--
-- CONFIGURATION SUMMARY
-- png support : disabled
-- jpeg support : disabled
-- gio support : disabled
-- register thumbnailer : disabled
-- unittests : enabled
-- debug mode : disabled
CMake Error: The following variables are used in this project, but they are setto NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake fils:
AVCODEC_INCLUDE_DIR
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
AVCODEC_LIBRARY
linked by target "libffmpegthumbnailer" in directory C:/ffmpegthumbnailer-22.0
AVFILTER_INCLUDE_DIR
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
AVFILTER_LIBRARY
linked by target "libffmpegthumbnailer" in directory C:/ffmpegthumbnailer-22.0
AVFORMAT_INCLUDE_DIR
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
AVFORMAT_LIBRARY
linked by target "libffmpegthumbnailer" in directory C:/ffmpegthumbnailer-22.0
AVUTIL_INCLUDE_DIR
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
used as include directory in directory C:/ffmpegthumbnailer-2.2.0/test
AVUTIL_LIBRARY
linked by target "libffmpegthumbnailer" in directory C:/ffmpegthumbnailer-22.0
-- Configuring incomplete, errors occurred!
See also "C:/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build/CMakeFiles/CMakeOuput.log".
Coder@Coder-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build
$
更新 3
Coder@Coder-WIN10 ~
$ cd C:\ffmpegthumbnailer-2.2.0
Coder@Coder-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0
$ cd ffmpegthumbnailer_build
Coder@Coder-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build
$ cmake ../
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
CMake Warning at /usr/share/cmake-3.6.2/Modules/Platform/CYGWIN.cmake:15 (message):
CMake no longer defines WIN32 on Cygwin!
(1) If you are just trying to build this project, ignore this warning or
quiet it by setting CMAKE_LEGACY_CYGWIN_WIN32=0 in your environment or in
the CMake cache. If later configuration or build errors occur then this
project may have been written under the assumption that Cygwin is WIN32.
In that case, set CMAKE_LEGACY_CYGWIN_WIN32=1 instead.
(2) If you are developing this project, add the line
set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
at the top of your top-level CMakeLists.txt file or set the minimum
required version of CMake to 2.8.4 or higher. Then teach your project to
build on Cygwin without WIN32.
Call Stack (most recent call first):
/usr/share/cmake-3.6.2/Modules/CMakeSystemSpecificInformation.cmake:36 (include)
CMakeLists.txt:26 (PROJECT)
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++.exe
-- Check for working CXX compiler: /usr/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found JPEG: /usr/lib/libjpeg.dll.a
-- Found ZLIB: /usr/lib/libz.dll.a (found version "1.2.11")
-- Found PNG: /usr/lib/libpng.dll.a (found version "1.6.34")
-- Found PkgConfig: /usr/bin/pkg-config.exe (found version "0.29.1")
-- Checking for module 'libavcodec'
-- No package 'libavcodec' found
CMake Error at /usr/share/cmake-3.6.2/Modules/FindPkgConfig.cmake:424 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.6.2/Modules/FindPkgConfig.cmake:597 (_pkg_check_modules_internal)
CMakeLists.txt:58 (PKG_CHECK_MODULES)
-- Configuring incomplete, errors occurred!
See also "/cygdrive/c/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build/CMakeFiles/CMakeOutput.log".
Coder@Coder-WIN10 /cygdrive/c/ffmpegthumbnailer-2.2.0/ffmpegthumbnailer_build
$
【问题讨论】:
-
有时一个包会提供一个配置选项,比如
--disable-docs或类似的选项。其他时候,您需要通过设置MAKEINFO=true来欺骗机器。还有一些时候,您需要修补configure.ac以删除构建文档的位。 -
我听说 Makefile.am 用于创建 Makefile 本身。如何激活它?
-
是的,有时
Makefile.am需要修补。我还看到 [少数] 少数软件包在配置后即时创建Makefile。也就是说,他们在make期间构建源代码时创建了makefile。wget或libidn{2}曾经这样做过。从源代码构建包时,要避免构建失败真的很困难。 -
pkg-config是一个类似make的构建工具。您可能可以通过 Cygwin 的安装程序安装它。如果README准确,则需要安装ffmpeg-devel和libpng-devel。那应该清除Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)。根据README,其他人不需要(但可能需要)。 -
好的,我现在试试。
标签: linux windows ubuntu ffmpeg cmake