Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在不修改目标(ARM和x86)发行版的情况下生成Yocto包_C++_Cmake_Cross Compiling_Yocto_Bitbake - Fatal编程技术网

C++ 在不修改目标(ARM和x86)发行版的情况下生成Yocto包

C++ 在不修改目标(ARM和x86)发行版的情况下生成Yocto包,c++,cmake,cross-compiling,yocto,bitbake,C++,Cmake,Cross Compiling,Yocto,Bitbake,目前,我正在开发一个具有以下特征的C/C++应用程序: 多目标平台-ARM(Raspbian)和制造商改进的x86发行版 CMake用于编译C/C++应用程序 交叉编译针对ARM和定制的x86发行版=>使用CMake(以及涵盖交叉编译的工具链) 多个依赖项(其他github存储库),它们分别交叉编译(根据github自述)。这些在项目的CMake中引用。CMake决定是使用ARM还是x86 LIB 对于部署,我将交叉编译的依赖项库复制到目标上的/usr/lib。然后,可以在目标上启动交叉编译的

目前,我正在开发一个具有以下特征的C/C++应用程序

  • 多目标平台-ARM(Raspbian)和制造商改进的x86发行版
  • CMake用于编译C/C++应用程序
  • 交叉编译针对ARM和定制的x86发行版=>使用CMake(以及涵盖交叉编译的工具链)
  • 多个依赖项(其他github存储库),它们分别交叉编译(根据github自述)。这些在项目的CMake中引用。CMake决定是使用ARM还是x86 LIB
  • 对于部署,我将交叉编译的依赖项库复制到目标上的/usr/lib。然后,可以在目标上启动交叉编译的应用程序
由于交叉编译非常烦人,因为它充满了陷阱,而且我将来还需要更多的依赖项,因此我决定转移到另一个构建系统以使事情变得更简单:

我的目标是获得一个rpm/deb文件,该文件可以轻松安装到目标系统上

经过几个小时的研究,我发现通过Yocto交叉编译可以更容易地管理。此外,还可以构建deb/rpm/。。。可安装在目标上的文件

无论如何,据我所知,这个deb/rpm/。。。文件只能安装在用于编译=>的yocto发行版/映像上,换句话说,我必须在我们的目标(raspberry&x86)上闪存一个全新的发行版。不幸的是,这对我来说是没有选择的(因为自定义x86目标)

问题1:为了安装创建的软件包,我必须替换目标上的发行版,这是否正确

问题2:有没有办法创建可安装在现有发行版上的交叉编译的deb文件?如果是,我必须做什么才能做到这一点

我认为我目前的构建策略不是最好的。如果你有任何想法如何使它更好,请随时让我知道

谢谢, 克里斯托夫