我可以强制我的PHPC扩展在编译时链接pthread吗?
在我的PHP扩展中,我有一个m4文件我可以强制我的PHPC扩展在编译时链接pthread吗?,php,c,php-extension,Php,C,Php Extension,在我的PHP扩展中,我有一个m4文件config.m4。据我所知,当我运行phpize时,它从config.m4生成一个configure文件,运行configure生成Makefile。在我的config.m4文件中,我使用以下行链接外部库 PHP_ADD_LIBRARY(library,,EXTENSION_SHARED_LIBADD) PHP_SUBST(EXTENSION_SHARED_LIBADD) 这将导致生成包含行的Makefile EXTENSION_SHARED_LIBADD
config.m4
。据我所知,当我运行phpize
时,它从config.m4
生成一个configure
文件,运行configure
生成Makefile。在我的config.m4
文件中,我使用以下行链接外部库
PHP_ADD_LIBRARY(library,,EXTENSION_SHARED_LIBADD)
PHP_SUBST(EXTENSION_SHARED_LIBADD)
这将导致生成包含行的Makefile
EXTENSION_SHARED_LIBADD = -llibrary
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
但是,当我试图通过预先结束行来链接pthread时
EXTENSION_SHARED_LIBADD = -llibrary
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
Makefile中的相关行不会更改,即使我将pthread
替换为test\u string
,它也会更改
我还尝试添加到config.m4
行LIBS=“-lpthread$LIBS”
,但这对生成文件没有影响
最后,我尝试将行EXTRA\LDFLAGS=-lpthread
添加到config.m4
,尽管它确实开始将-lpthread
传递到编译器,但该标记在命令行中出现得太早,无法发挥作用。似乎它必须在其他图书馆之后才能工作
在
config.m4
中,在EXTENSION\u SHARED\u LIBADD
中的其余库之后,我是否可以在make
中将参数-lpthread
传递给gcc
EXTENSION_SHARED_LIBADD = -llibrary
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
PHP_ADD_LIBRARY(pthread,,EXTENSION_SHARED_LIBADD)
与
这绕过了签入configure
,该签入从EXTENSION\u SHARED\u LIBADD
中剥离-lpthread