Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
针对ARM Sitara AM335x的交叉编译postgresql_Postgresql_Cross Compiling - Fatal编程技术网

针对ARM Sitara AM335x的交叉编译postgresql

针对ARM Sitara AM335x的交叉编译postgresql,postgresql,cross-compiling,Postgresql,Cross Compiling,我在为我的TI Sitara AM335x EVM SK交叉编译PostgreSQL时遇到问题。我的主机系统是一台运行Ubuntu 12.04的i386机器 我的应用程序是用Qt用C++编写的。当我尝试编译时,得到的错误是libpq.so不兼容。我相信这是因为交叉编译器试图使用主机libpq.so,而不是目标系统的主机libpq.so(我发现,目标系统不存在) 我下载了PostgreSQL的源代码,目的是交叉编译它,以便为我提供与目标系统兼容的libpq.so库,但实际上没有关于如何做到这一点的

我在为我的TI Sitara AM335x EVM SK交叉编译PostgreSQL时遇到问题。我的主机系统是一台运行Ubuntu 12.04的i386机器

<>我的应用程序是用Qt用C++编写的。当我尝试编译时,得到的错误是libpq.so不兼容。我相信这是因为交叉编译器试图使用主机libpq.so,而不是目标系统的主机libpq.so(我发现,目标系统不存在)

我下载了PostgreSQL的源代码,目的是交叉编译它,以便为我提供与目标系统兼容的libpq.so库,但实际上没有关于如何做到这一点的信息

我尝试将CC参数与configure文件一起使用,以将编译器更改为以下内容:
CC=/home/tim/ti-sdk-am335x-evm-06.00.00/linux-devkit/sysroot/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
,但配置脚本给我以下错误:
configure:error:无法运行C编译程序。如果要交叉编译,请使用--host。

configure文件很小地引用了--host选项,但在该文件中我能找到的唯一信息是关于mingw和windows的,这不是我想要的

我在配置文件中做了一些快速搜索,它引用了--host选项,但没有解释什么是有效的主机。我假设使用--host选项将有一个关联的--target


我可以为configure脚本提供哪些参数,以便它使用正确的编译器进行交叉编译,以生成我的目标设备可以使用的库?有没有关于--host/--target如何工作或如何使用它们的资源我还没有找到?

好的,所以在闲逛了一会儿之后,我想我实际上能够交叉编译PostgreSQL并回答我自己的问题了

在进一步讨论之前,我意识到我忘记了将交叉编译器的路径添加到path环境变量中。我使用命令
export PATH=/PATH/to/cross/compiler:$PATH
将编译器路径插入PATH环境变量

接下来,我对--host选项进行了一些实验。首先,我尝试使用
/configure--host=armlinux-gnueabihf
并运行configure脚本。配置脚本似乎接受此作为主机参数。然后,我进入运行makefile的下一步。运行此生成文件导致生成错误。错误是
所选处理器不支持拇指模式
。我做了一个快速搜索,看看我能找到什么关于这个错误的信息,来到这个网页:

这个网页给了我更多的信息,因为这个人似乎试图做一些与我非常相似的事情。这篇文章的一位回复者提到--disable spinlocks适用于PostgreSQL默认不支持的处理器。我模拟了上面列出的网站中使用的参数,并使用命令:
/configure--host=arm linux=arm-gnueabihf-gcc-AR=arm-linux-gnueabihf-AR-CPP=arm-linux-gnueabihf-CPP--without-readline--without-zlib--disable-spinlocks
生成我的makefile。这个makefile实际上生成了所有文件,包括我需要的libpq.so库文件

希望这对以后的其他人有帮助

看一看。它同时提供Qt4.x/5.x和PostgreSQL包。