在我的PHP扩展中,我有一个m4文件config.m4
。据我了解,当我运行phpize
时,它会从configure
生成config.m4
文件,并且运行configure
会生成Makefile。在我的config.m4
文件中,我使用
PHP_ADD_LIBRARY(library,,EXTENSION_SHARED_LIBADD)
PHP_SUBST(EXTENSION_SHARED_LIBADD)
导致Makefile包含行
EXTENSION_SHARED_LIBADD = -llibrary
但是,当我尝试通过前缀
链接pthread时PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
Makefile中的相关行不会更改,即使我将pthread
替换为test_string
也是如此。
我还尝试添加config.m4
行LIBS="-lpthread $LIBS"
,但这对Makefile没有任何影响。
我终于尝试将行EXTRA_LDFLAGS=-lpthread
添加到config.m4
,即使它确实开始将-lpthread
传递给编译器,但是命令行中的标志来得太早才产生效果。它似乎必须在其他库之后才能工作。
我可以在config.m4
中执行哪些操作,make
将-lpthread
的参数gcc
传递给EXTENSION_SHARED_LIBADD
{{1}}中的其他库之后?
答案 0 :(得分:0)
我通过替换
来解决这个问题PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
与
EXTENSION_SHARED_LIBADD="-lpthread $EXTENSION_SHARED_LIBADD"
这绕过了从configure
剥离-lpthread
的{{1}}支票。