当前位置: 技术问答>linux和unix
关于交叉编译的问题【求助】
来源: 互联网 发布时间:2016-05-22
本文导语: 大家好,我在交叉编译时遇到点问道,大家帮我看看。 首先我静态编译:make LDFLAGS="-all-static" 结果出现lad/ladProject.c:60:indefined refrence to 'PQconnect'的问题,我查了下,据说是因为没加-lpq选项,于是重新编译...
大家好,我在交叉编译时遇到点问道,大家帮我看看。
首先我静态编译:make LDFLAGS="-all-static"
结果出现lad/ladProject.c:60:indefined refrence to 'PQconnect'的问题,我查了下,据说是因为没加-lpq选项,于是重新编译:
make LDFLAGS="-all-static -lpq"
结果出现新的问题:arm-linux/bin/ld:cannot find -lpq
在线求助!
首先我静态编译:make LDFLAGS="-all-static"
结果出现lad/ladProject.c:60:indefined refrence to 'PQconnect'的问题,我查了下,据说是因为没加-lpq选项,于是重新编译:
make LDFLAGS="-all-static -lpq"
结果出现新的问题:arm-linux/bin/ld:cannot find -lpq
在线求助!
|
gcc的库文件和交叉编译的库文件不一样的,你应该找到交叉编译库文件libpq.so,应该在提示的路径下,如果没有则搜索下在哪个位置,还是没有的话就只有自己做一个libpq.so了
|
-lpq 是链接时候选项,加了这个选项会额外的去连接一些库,否则会提示找不到
你把Makefile中的这句改成下面的,然后重新make试试看:
> CFLAGS = -g -O2 -Dlinux -lpq
|
已经给出提示了,就是找不到库,也就是编译链接器在默认的搜索路径下找不到你指定的库(-lpq): libpq.so;
你自己要清楚你的库libpq.so(或者类似名字)是否有,如果有,在什么目录下? 假设libpq.so位于/YOUR_PATH这个目录下,那么试着修改如下:
make LDFLAGS="-all-static -L/YOUR_PATH -lpq"
GOOD LUCK!!!!