首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >涉及Glib2库的程序编译问题?

涉及Glib2库的程序编译问题?
EN

Stack Overflow用户
提问于 2013-08-23 13:29:13
回答 2查看 560关注 0票数 0

我试图在远程服务器上编译以下项目

我在一个叫做“scode”的文件夹里克隆了这个项目。

该项目需要glib2和gsl库。因为我试图在远程服务器上编译,所以我没有sudo特权。所以我不能用工具来安装glib2和gsl。

因此,我在文件夹'scode/ gsl‘和'scode/glib’下手动编译了gsl和gslib2。

我必须修改Makefile并将绝对路径作为-I选项添加到这些目录中。

尽管如此,当我试图编译最终的可执行文件时。我得到以下错误:

dyuret@psglogin scode$ make gcc -O3 -D_GNU_SOURCE -Wall -std=c99 -I。-I /home-2/dyuret/ scode /gsl -I /home-2/dyuret/scode/glib/ pkg-config --cflags glib-2.0 scode.o svec.o pkg-config --libs glib-2.0 -lm -lgsl -lgslcblas -o scode //home-2/dyuret/scode/glib/glib/libglib-2.0.la:文件不可识别:文件格式不可识别 collect2:错误: ld返回一个退出状态:* scode错误1

我已经研究过这个问题了。这个链接看起来信息丰富,但我不能很好地理解作者的意思,因为我对编译器、libtools和一般的编译流程没有那么丰富的经验。

任何帮助都将不胜感激。我已经在这个问题上花了一段时间,但没有取得多大进展。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-28 10:59:03

我小组的人帮我解决了这个问题。以下是他粗略执行的步骤:

(1)在$HOME目录下手动安装glib和其他库--即$HOME/lib、$HOME/include。

(1.1)我认为他这样做的方法是:‘.配置前缀=$HOME’,'make','make‘。

(2)消除了pkg\_config的使用,这导致了我最初描述的问题。下面是他的新的CLFAGS和LIBS变量:

代码语言:javascript
复制
CFLAGS=-O3 -D_GNU_SOURCE -Wall -std=c99 -I. -I$$HOME/include -I$$HOME/include/glib-2.0 -I$$HOME/lib/glib-2.0/include
LIBS=-lglib-2.0 -lm -lgsl -lgslcblas -L$$HOME/lib -L/usr/local/cuda/lib64 -lcudart

在此之后,编译代码时不会出现其他问题。

票数 0
EN

Stack Overflow用户

发布于 2013-08-23 13:40:07

听起来好像您在非默认(即非系统)位置编译库所做的工作可能是错误的。

对于使用autoconf的包(即在源根中有configure脚本的包),您应该使用--prefix选项to ./configure来设置要安装包的目标位置。

在构建共享库的包中,通常必须执行make install步骤,这听起来好像您没有这样做。

抱歉,这些事情有点复杂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18404098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档