这是我的第一个问题:)。我需要在我的Archlinux x86_64系统中编译VideoData(我可以在Ubuntu 12.04 x86中编译它,但它对我没用),但是我从ld得到了一些错误。
这里
…
我遇到了和你一样的问题,但是经过对Makefile的一些修改,我能够在x86_64 Arch Linux中交叉编译32位的应用程序。 这里 是makefile。
基本上我必须做两个改变:
完成这两项更改后,您应该能够构建32位的VideoData演示。导致错误是因为ArchLinux中的multilib布局与CentOs不同
请注意,如果您想在x86_64中运行32位VideoData演示,您还需要安装一些Gstreamer插件的32版本。其中一些插件在multilib存储库中不可用,因此您必须自己构建它们。另一种方法是创建一个32位的chrooted环境。
事后,你解释我需要交叉编译为32位。所以我的答案并没有完全解决你的问题。无论如何我都会把它留在这里,因为它包含了在64位机器上构建示例的有用信息。
我试图在CentOS 6.5,64位上构建这个问题。
为了解决这些问题,我创建了一个新的makefile make\Makefile.x64Linux2.6gcc4.4.5 。这是从现有的 Makefile.i86Linux2.6gcc4.4.5 ,但随着 -m32 删除标志,定义 RTI_64BIT 添加并且体系结构名称与已安装的DDS版本的64位体系结构的名称相匹配( x64Linux2.6gcc4.4.5 )。
make\Makefile.x64Linux2.6gcc4.4.5
Makefile.i86Linux2.6gcc4.4.5
-m32
RTI_64BIT
x64Linux2.6gcc4.4.5
也 make\Makefile.common 必须进行调整才能使其发挥作用。在那个文件中 pkg-config 在某些似乎相关的地方需要,以纠正编译器和链接器选项 glib-2.0 和 gstreamer-0.10 。
make\Makefile.common
pkg-config
glib-2.0
gstreamer-0.10
我不确定这些确切地导致了你的问题,也许你可以尝试我放在pastebin.com中的文件,看看它们是否适合你。
顺便说一句,看起来粘贴到pastebin中的makefile有他们的 TAB s(在行的开头)由空格替换。这将破坏你的制作过程,所以你必须手动纠正 - 抱歉,我不知道有什么方法。
TAB