makefile - 链接期间的 libtool 错误

标签 makefile libtool

我正在编译使用 libtool 进行编译的 courier-authlib-0.66.1。我修改了所有 Makefile 以删除 --mode=link 行中的 CFLAGS 和 CXXFLAGS,因为我使用了一些特殊的编译器标志来处理 clang,这会混淆链接器。
在编译过程中,我收到以下错误:

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 's/.* //' | sort | uniq > .libs/libcourierauthsasl.exp

./libtool: eval: line 1085: syntax error near unexpected token `|'


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

eval "$my_cmd"


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

最佳答案

问题已经解决了。我在 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 变量不知何故丢失了,所以我只是将其删除。当然,这只是一个肮脏的解决方案......

关于makefile - 链接期间的 libtool 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587972/

相关文章:

python - libtool python 模块链接和安装

autotools - Libtool 安装警告 : xxx. la 尚未安装在/user/local/lib

makefile - 当一切都在那里时,libtool 没有生成 lo 文件

c - Libtool/clang : let me pass arguments to compiler but not linker

bash - 从 makefile 到 bash 的变量

c - 除非在主项目中使用,否则静态库中的链接错误

c - Makefile 中的测试命令

makefile - 如何在 make 变量中将当前目录捕获为绝对路径名?

c++ - 关于正确编译和运行代码的 Makefile "Error 1"

gnu - Make distcheck 不会复制所有来源