【问题标题】:libtool error during linkage链接期间的 libtool 错误
【发布时间】:2014-05-11 01:21:57
【问题描述】:

我正在编译 courier-authlib-0.66.1,它使用 libtool 进行编译。我修改了所有 Makefile 以删除 --mode=link 行中的 CFLAGS 和 CXXFLAGS ,因为我使用了一些专门的编译器标志来混淆链接器。

在编译过程中,出现以下错误:

libtool:链接:/usr/bin/nm -B .libs/authsasl.o .libs/authsaslcram.o .libs/authsasllogin.o .libs/authsaslplain.o .libs/authsaslfrombase64.o .libs/authsasltobase64。 ○ | | /bin/sed 's/.* //' |排序 | uniq > .libs/libcourierauthsasl.exp

./libtool: eval: line 1085: 意外标记 `|' 附近的语法错误

显然命令中有两个栏,我应该删除其中一个。但是,当我打开libtool文件并跳转到第1085行时,我只找到了以下代码

eval "$my_cmd"

您能告诉我如何找到此错误的根本原因并解决它吗?或者哪些文件可以帮助我?谢谢!

【问题讨论】:

    标签: makefile libtool


    【解决方案1】:

    问题解决了。我在 Courier 的邮件列表中问了一个问题,得到了很好的回答: http://sourceforge.net/p/courier/mailman/message/32327466/

    我只是在这里复制了关键部分。

    $ fgrep 'sort | uniq' libtool
    export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe |  
    \$SED 's/.* //' | sort | uniq > \$export_symbols"
    

    实际上,\$global_symbol_pipe 变量不知何故丢失了,所以我只是将其删除。当然,这只是一个肮脏的解决方案......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 2014-12-03
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多