Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Unix 未能编译,错误为“0”;在-lCGAL“中找不到主节点”;,符号链接不是问题所在_Unix_Build_Linker_Shared Libraries - Fatal编程技术网

Unix 未能编译,错误为“0”;在-lCGAL“中找不到主节点”;,符号链接不是问题所在

Unix 未能编译,错误为“0”;在-lCGAL“中找不到主节点”;,符号链接不是问题所在,unix,build,linker,shared-libraries,Unix,Build,Linker,Shared Libraries,我试图在一个我没有根访问权限的网络上构建一些软件(即python模块图形工具)。因此,我自己在本地磁盘上安装了所有依赖项,使用--prefix和--include flags以及CPPFLAGS和LD_LIBRARY_PATH环境变量 这样做之后,我发现了一个奇怪的错误,就是找不到我的一个依赖项(即CGAL:) 配置脚本显示正在检查main in-lCGAL。。。否,并且在打印大量编译器警告后,生成文件会失败,出现/usr/bin/ld:not find-lCGAL 这可能意味着它根本找不到已安

我试图在一个我没有根访问权限的网络上构建一些软件(即python模块图形工具)。因此,我自己在本地磁盘上安装了所有依赖项,使用--prefix和--include flags以及CPPFLAGS和LD_LIBRARY_PATH环境变量

这样做之后,我发现了一个奇怪的错误,就是找不到我的一个依赖项(即CGAL:)

配置脚本显示
正在检查main in-lCGAL。。。否
,并且在打印大量编译器警告后,生成文件会失败,出现
/usr/bin/ld:not find-lCGAL

这可能意味着它根本找不到已安装的库。几乎所有发生这种情况的其他实例,谷歌都透露,它们没有正确设置指向库的符号链接。此处似乎设置正确:

truffles:rlaplant[147] echo $LD_LIBRARY_PATH
/local_mount/space/truffles/1/users/rlaplant/graphtool/parts/lib:/local_mount/space/truffles/1/users/rlaplant/graphtool/parts/
truffles:rlaplant[160] file parts/lib/libCGAL.so
parts/lib/libCGAL.so: symbolic link to `libCGAL.so.10'

我真的搞不懂怎么了。也许我使用LD_LIBRARY_PATH的方式有问题?

我想我知道我的问题出在哪里了

尽管libCGAL.so是一个动态链接的库,但编译脚本实际做的是将其视为一个静态库。我不知道它能做到这一点,我认为如果它是一个静态链接的库,它也不能动态链接,反之亦然(我认为这在实践中通常是正确的)

我在这里做的是设置LIBRARY\u PATH,它查找静态库,而不是LD\u LIBRARY\u PATH,它在运行/链接时查找动态链接的库。我相信,如果configure脚本的编写更好地考虑到我在这里尝试使用有趣的前缀所做的事情,那么这种区别就没有意义了,因为这样它就可以只使用-L标志,而且据我所知,这对静态和动态链接都有效,但LD_LIBRARY_PATH环境变量不起作用(但这可能不是真的)