我无法在Yocto中获得配方。
你唯一需要知道的是,Yocto是否为构建设置了sysroots和其他环境变量(PKG_CONFIG_PATH,PATH,编译器标志等)。
Here是Yocto构建期间使用的printenv
的输出。这里的某些内容导致CMake中的find_path
失败。
这是失败的一点。
find_path( MFX_INCLUDE mfxdefs.h PATHS ${MFX_API_HOME}/include )
在交叉环境中,MFX_INCLUDE
设置为MFX_INCLUDE-NOTFOUND
。在我的本地非交叉环境中,它(正确)设置为/home/pknopf/git/MediaSDK/api/include
,因为它正确地找到了mfxdefs.h
。
关于为什么我的find_path
命令会调用一个而不是另一个命令的任何想法?
顺便说一下,我的本地机器正在使用CMake 3.5.1(工作),而Yocto正在使用3.7.2(不工作)。
我觉得它与Yocto设置的环境变量有关,但我不确定是哪一个。
编辑:为了使事情更加清晰,以下内容无效。
find_path( MFX_INCLUDE mfxdefs.h PATHS /home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include)
这导致:
MFX_INCLUDE-NOTFOUND
以下是/home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include
的内容:
ls -l /home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include
total 220
-rw-r--r-- 1 1000 1000 4320 Mar 2 15:24 mfxastructures.h
-rw-r--r-- 1 1000 1000 2979 Mar 2 15:24 mfxaudio.h
-rw-r--r-- 1 1000 1000 4966 Mar 2 15:24 mfxaudio++.h
-rw-rw-r-- 1 root root 4639 Mar 2 16:03 mfxbrc.h
-rw-r--r-- 1 1000 1000 4876 Mar 2 15:24 mfxcommon.h
-rw-rw-r-- 1 root root 6596 Mar 2 16:03 mfxdefs.h
-rw-r--r-- 1 1000 1000 7433 Mar 2 15:24 mfxdispatcherprefixedfunctions.h
-rw-r--r-- 1 1000 1000 2477 Mar 2 15:24 mfxenc.h
-rw-r--r-- 1 1000 1000 15517 Mar 2 15:24 mfxfei.h
-rw-rw-r-- 1 root root 6529 Mar 2 16:03 mfxfeihevc.h
-rw-r--r-- 1 1000 1000 2519 Mar 2 15:24 mfxjpeg.h
-rw-r--r-- 1 1000 1000 2604 Mar 2 15:24 mfxla.h
-rw-r--r-- 1 1000 1000 2533 Mar 2 15:24 mfxmvc.h
-rw-r--r-- 1 1000 1000 2540 Mar 2 15:24 mfxpak.h
-rw-rw-r-- 1 root root 11116 Mar 2 16:03 mfxplugin.h
-rw-r--r-- 1 1000 1000 28017 Mar 2 15:24 mfxplugin++.h
-rw-r--r-- 1 1000 1000 2136 Mar 2 15:24 mfxsession.h
-rw-rw-r-- 1 root root 50908 Mar 2 16:03 mfxstructures.h
-rw-r--r-- 1 1000 1000 5768 Mar 2 15:24 mfxvideo.h
-rw-r--r-- 1 1000 1000 10110 Mar 2 15:24 mfxvideo++.h
-rw-r--r-- 1 1000 1000 2175 Mar 2 15:24 mfxvp8.h
-rw-r--r-- 1 1000 1000 1147 Mar 2 15:24 mfxvstructures.h
如你所见,mfxdefs.h
绝对是......
EDIT2 :使用NO_CMAKE_FIND_ROOT_PATH
修复它。不知道为什么,现在看文档。