gpt4 book ai didi

linux - 无法使用适用于 Windows 10 的 Cygwin 在 ffmpegthumbnailer 安装文件上使用 Makefile

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:54 33 4
gpt4 key购买 nike

我目前正在尝试构建 exe/二进制文件以支持 Windows 10 上的 ffmpegthumbnailer。我阅读了多篇关于让它工作的文章,但似乎没有一篇能满足我的需求。我目前将 ffmpegthumbnailer-2.2.0 存储在 C:\ffmpegthumbnailer-2.2.0 我看到一个名为 CMakeFilesdist 的文件夹>kffmpegthumbnailerlibffmpegthumbnailerma​​ntestthunar 文件。当我在目录中运行 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
$

最佳答案

如评论中所述,即使缺少工具,当软件包坚持构建文档时,避免构建失败可能会很棘手。我经常遇到 Autotools 的问题,但我不记得在 Cmake 上遇到过。无论如何我都不是 CMake 专家,所以请对下面的信息持保留态度。

这可能对您有用。如果这是一个 Autotools 项目,我会做同样的事情:

$ git clone https://github.com/dirkvdb/ffmpegthumbnailer.git
$ cd ffmpegthumbnailer

$ rm -rf man/
$ sed -i '\|/man/|d' CMakeLists.txt

$ mkdir ffmpegthumbnailer_build
$ cd ffmpegthumbnailer_build/

$ cmake ../

上面的 sed 是一个简单的 match and delete line .它删除引用文档的配方。 sed 使用横线 | 作为分隔符,因为它与 /man/ 匹配(此更改避免倾斜牙签)。

$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e708812..af3d8c2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -184,7 +184,6 @@ install(TARGETS ffmpegthumbnailer ${STATIC_LIB} ${SHARED_LIB}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libffmpegthumbnailer
)

-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/man/ffmpegthumbnailer.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
install(FILES ${CMAKE_BINARY_DIR}/libffmpegthumbnailer.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

if (ENABLE_THUMBNAILER)

我有一些丢失的包,所以我无法进一步测试它:

$ cmake ../
-- Checking for module 'libavcodec'
-- Package 'libavcodec', required by 'virtual:world', not found
-- Checking for module 'libavformat'
-- Package 'libavformat', required by 'virtual:world', not found
-- Checking for module 'libavutil'
-- Package 'libavutil', required by 'virtual:world', not found
-- Checking for module 'libavfilter'
-- Package 'libavfilter', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find FFmpeg (missing: AVCODEC_FOUND AVFORMAT_FOUND AVUTIL_FOUND
AVFILTER_FOUND)
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
cmake/FindFFmpeg.cmake:9 (find_package_handle_standard_args)
CMakeLists.txt:47 (find_package)

另请注意,有一个 --disable-manpages Autotools 选项。问题是,没有 Autotools configure.acconfigure:

$ grep -IR man
...

.travis.yml: cd ffmpeg-3.1.3 && ./configure --prefix=/${DEPS_DIR}/local --d
isable-static --enable-shared --disable-avdevice --disable-doc --disable-htmlpag
es --disable-manpages --disable-programs --disable-encoders --disable-muxers --e
nable-swscale --disable-yasm --enable-protocol=file --enable-protocol=http --ena
ble-iconv && make -j4 install

INSTALL 文件没用:

$ cat INSTALL
Basic Installation
==================

Perform cmake configuration:
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GIO=ON -DENABLE_THUMBNAILER=ON .

Build the code:
make

Install:
make install

关于linux - 无法使用适用于 Windows 10 的 Cygwin 在 ffmpegthumbnailer 安装文件上使用 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940307/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com