即使在LIBRARY_PATH,LD_LIBRARY_PATH和LD_PRELOAD中,ld在空环境中也找不到-lz

时间:2019-07-19 10:39:28

标签: c gcc conda ld libz

我正在尝试创建一个conda程序包,其中包含必须与c一起编译的-lz代码。但是,在构建程序包时,即使我为它提供了任何可能的路径,ld也找不到zlib

据我了解,conda创建了几乎是空的环境,然后用必要的库和工具填充了该环境。它还安装了zlib,因此zlib.h中有$BUILD_PREFIX/include/,而libz.so, libz.a中有$BUILD_PREFIX/lib

编译本身看起来像

$BUILD_PREFIX/bin/x86_64-conda_cos6-linux-gnu-cc -fPIC -g -Wall -O2 -Wc++-compat main.o -o <name> -L. -l<name> -lm -lz -lpthread

x86_64-conda_cos6-linux-gnu-ccgcc version 7.3.0,它调用这里定义为ld的{​​{1}}。然后$BUILD_PREFIX/bin/x86_64-conda_cos6-linux-gnu-ld出现错误ld

我尝试使用

cannot find -lz

以任何组合使用,但这不起作用。

还有其他方法可以显示export C_INCLUDE_PATH="$BUILD_PREFIX/include" export LIBRARY_PATH="$BUILD_PREFIX/lib" export LD_LIBRARY_PATH="$BUILD_PREFIX/lib" export LD_PRELOAD="$BUILD_PREFIX/lib/libz.so" 到图书馆的路径吗?

0 个答案:

没有答案