linux - ../../libtool : line 6000: cd: -l: invalid option; where to solve it?

标签 linux

我在使用 ma​​ke 命令时遇到问题。我正在 RHEL 上为 ppc64 编译 Scilab。 ./configure 进展顺利,现在当我 ma​​ke all 时,我在编译模块 umfpack 时遇到了问题。我可以通过进入 module/umfpack 文件夹并在其中输入 ma​​ke all 来重现此错误。这是输出:

    enter[root@rhel70-misurio umfpack]# /bin/sh ../../libtool  --tag=CC   --mode=link gcc -D_LARGEFILE64_SOURCE -DNDEBUG -fno-stack-protector -g -O2  -version-number 5:5:1 -Wl,--no-as-needed -o libsciumfpack.la -rpath /usr/local/lib/scilab sci_gateway/c/libsciumfpack_la-gw_umfpack.lo sci_gateway/c/libsciumfpack_la-sci_res_with_prec.lo sci_gateway/c/libsciumfpack_la-sci_taucs_chdel.lo sci_gateway/c/libsciumfpack_la-sci_taucs_chfact.lo sci_gateway/c/libsciumfpack_la-sci_taucs_chget.lo sci_gateway/c/libsciumfpack_la-sci_taucs_chinfo.lo sci_gateway/c/libsciumfpack_la-sci_taucs_chsolve.lo sci_gateway/c/libsciumfpack_la-sci_umf_ludel.lo sci_gateway/c/libsciumfpack_la-sci_umf_lufact.lo sci_gateway/c/libsciumfpack_la-sci_umf_luget.lo sci_gateway/c/libsciumfpack_la-sci_umf_luinfo.lo sci_gateway/c/libsciumfpack_la-sci_umf_lusolve.lo sci_gateway/c/libsciumfpack_la-sci_umfpack.lo libsciumfpack-algo.la -L-lumfpack -lsuitesparseconfig -lumfpack  -lpthread -ldl -lcurses  -lm
../../libtool: line 6000: cd: -l: invalid option
cd: usage: cd [-L|[-P [-e]]] [dir]
libtool: link: cannot determine absolute directory name of `-lumfpack'

所以很明显,代码在某个地方正在执行“cd -”某些操作。但是哪里...?这是我所在的文件夹。

[root@rhel70-hostname umfpack]# ls
etc       libsciumfpack-algo.la  make_all_log  sci_gateway        umfpack.iss
examples  license.txt            Makefile      src                UMFPACK_license.txt
help      locales                Makefile.am   TAUCS_license.txt
includes  macros                 Makefile.in   tests

您认为哪些候选人是我必须调查的错误所在?你会代替我进行调试吗?

谢谢!

最佳答案

非常感谢您的建议!我进入 libtool 文件,确实发现在第 6'000 行有这样一行代码:

   absdir=`cd "$dir" && pwd`
      test -z "$absdir" && \
        func_fatal_error "cannot determine absolute directory name of \`$dir'"

我意识到它在脚本中执行“cd -lumfpack”。这是我给 ./configure 脚本的输入,在该脚本中我必须显式提供 libumfpack 和 libsuitesparseparseconfig 作为选项,因为它默认使用其他库。在该选项中,我给出了:

--with-umfpack-library="-lumfpack -lsuitesparseconfig" 

然后 make 正在执行“cd -lumfpack”。所以我考虑提供两个库的绝对路径!所以我作为输入:

--with-umfpack-library="/usr/local/lib/libumfpack.a /usr/local/lib/libsuitesparseconfig.a" 

它成功运行了配置脚本和 make。

另一个“解决方案”是删除 umfpack 库以及配置脚本的选项:

--without-umfpack

希望它对 future 编译 Scilab 的程序员有所帮助!

老实说,我认为另一种方法是可行的,即直接在配置脚本中指定 libumfpack 和 libsuitesparseconfig 库,但我当时没有时间对此进行调查。如果我愿意,我会更新这篇文章。

关于linux - ../../libtool : line 6000: cd: -l: invalid option; where to solve it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770557/

相关文章:

linux - 我如何在 linux 上制作一个 zip 文件?

c - cd插入C时发出信号

linux - 在 Linux 上验证电子邮件地址

linux - 我可以从损坏的 Raspberry Pi sd 恢复文件吗?

python - AWS Lambda 中的 Wget 不返回

linux - 无法启动脚本

linux - 如何使用 'mv' 命令移动特定目录中的文件除外?

linux - 如何从 FAT 镜像恢复已删除的文件?

linux - 更新 Scala 版本

linux - 我可以使用 ECHO 来执行命令吗?