首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何添加include和lib路径到configure/make cycle?

如何添加include和lib路径到configure/make cycle?
EN

Stack Overflow用户
提问于 2011-09-27 05:25:25
回答 3查看 220.4K关注 0票数 97

我需要一个地方在linux机器中安装库,我不能使用su命令访问。我使用了~/local/bin、/lib、/include,但是我不知道如何判断./configure来查找那里的库(特别是,我正在尝试编译emacs,它需要libgif,而我的发行版中没有)。

我试着添加

代码语言:javascript
复制
export PATH=$PATH:~/local/bin
export LD_LIBRARY_PATH=~/local/lib
export C_INCLUDE_PATH=~/local/include
export CPLUS_INCLUDE_PATH=~/local/include

发送到.bashrc,但似乎不起作用。

EN

回答 3

Stack Overflow用户

发布于 2011-09-27 05:29:23

在运行make时设置LDFLAGS和CFLAGS:

代码语言:javascript
复制
$ LDFLAGS="-L/home/me/local/lib" CFLAGS="-I/home/me/local/include" make

如果您不想多次这样做,那么可以将它们导出到您的.bashrc (或您的shell等效物)中。还要将LD_LIBRARY_PATH设置为包含/home/me/local/lib:

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/me/local/lib
票数 36
EN

Stack Overflow用户

发布于 2013-05-25 02:02:27

这需要一段时间才能恢复正常。在Ubuntu中对ARM目标进行交叉编译时,我遇到了这个问题。我用以下方法解决了这个问题:

代码语言:javascript
复制
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib ./autogen.sh --build=`config.guess` --host=armv5tejl-unknown-linux-gnueabihf

注意CFLAGS没有和autogen.sh/configure一起使用,使用它会给我一个错误:"configure: error: C编译器不能创建可执行文件“。在我使用的构建环境中,如果您没有在上面的命令中使用./autogen.sh替换./ autogen.sh脚本,则会提供一个配置脚本。我在目标系统上运行config.guess以获取--host参数。

成功运行autogen.sh/configure后,使用以下命令进行编译:

代码语言:javascript
复制
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib CFLAGS="-march=... -mcpu=... etc." make

我选择使用的CFLAGS是:"-march=armv5te -fno-tree-vectorize -mthumb interwork -mcpu=arm926ej-s“。正确设置所有的include目录将需要一段时间:您可能需要一些指向您的交叉编译器的include和一些指向您的根文件系统的include,并且可能会有一些冲突。

我确信这不是一个完美的答案。我仍然看到一些在Makefiles中包含指向/而不是/ccrootfs的目录。很想知道如何纠正这一点。希望这对某些人有帮助。

票数 8
EN

Stack Overflow用户

发布于 2022-02-18 02:56:46

例如,构建git usig $HOME/curl

代码语言:javascript
复制
package=git
version=2.17.0

tarUrl=https://mirrors.edge.kernel.org/pub/software/scm/git/$package-$version.tar.gz
install(){
   ./configure --prefix=$HOME
   LDFLAGS="-L$HOME/lib" CFLAGS="-I$HOME/include" make -j 2
   make install
}
if [ -e $package-$version.tar.gz ]; then
   echo "cache"
else
   wget --no-check-certificate ${tarUrl}
   tar -xvf $package-$version.tar.gz
fi
cd ./$package-$version
install
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7561509

复制
相关文章

相似问题

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