链接期间的libtool错误

时间:2014-05-11 01:21:58

标签: makefile libtool

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

在编译期间,我收到以下错误:

  

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

     

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

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

  

eval“$ my_cmd”

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

1 个答案:

答案 0 :(得分: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变量在某种程度上是缺失的,所以我只是将其删除了。当然,这只是一个肮脏的解决方案...