我在C++中编写了一个使用libtidy的扩展,当我编译PHP时它在PHP下完美运行--with-tidy.
但是,将扩展程序运行在一个vanilla PHP上会很不错.当我尝试使用扩展时,我得到类似的东西:
PHP Warning:
PHP Startup:
Unable to load dynamic library 'extension.so':
undefined symbol: tidyCleanAndRepair in Unknown on line 0
并且未加载扩展名.
显然,官方整洁的扩展工作正常.我在系统上安装了相关的libtidy开发包,它编译+链接没有问题.我试图通过代码查看整洁的扩展,但它是一个巨大的宏 - 复制件随机感觉像货物代码.
除了链接到库PHP_ADD_LIBRARY_WITH_PATH(tidy, $TIDY_LIBDIR, TIDY_SHARED_LIBADD),是否有PHP扩展或C语句来修复此错误?
提前致谢!!
编辑:这是整个config.m4文件:
dnl config.m4 for extension htmlparser
PHP_ARG_ENABLE(htmlparse, whether to enable htmlparser support,
[ --enable-htmlparser Enable htmlparser support])
if test "$PHP_HTMLPARSER" != "no"; then
if test -r $PHP_LIBXML2/lib/libxml2.a; then
LIBXML2_DIR=$PHP_LIBXML2
else
AC_MSG_CHECKING(for libxml2 in default path)
for i in /usr/local /usr; do
if test -r $i/lib/libxml2.a; then
LIBXML2_DIR=$i …Run Code Online (Sandbox Code Playgroud) 我正在使用GUIDE构建一个简单的MATLAB gui.我有一个项目列表框.大多数情况下,它按预期工作,但有时(通常在我使用GUIDE编辑图形后)填充列表框会导致它消失,以及此消息:
Warning: single-selection listbox control requires a scalar Value
Control will not be rendered until all of its parameter values are valid
Run Code Online (Sandbox Code Playgroud)
这种行为无法调试!当我单步执行时,它按预期工作(我怀疑它是一种线程竞赛或其他东西).此外,在相同条件下重新启动MATLAB环境后,它通常会消失.
在此错误中找到的所有文档都涉及MATLAB的先前/古代版本(我使用的是R2010a).
任何有关此主题的想法或信息将不胜感激!
编辑:感谢米哈伊尔,我似乎已经解决了这个问题.我在这里发布我的代码以供将来参考.
经过大量的调试打印和疯狂点击之后,我发现有时候当您询问列表框选择的内容时,会得到一个空的结果.这个问题和其他问题使事情变得混乱.我把所有的写作交互都放到了一个集中的函数中,然后我写了一些测试代码,以确保事情保持原样.
请注意,这已经在我自己的环境(在R2010a上)进行了测试,而不是广泛的.此外,代码有点多余,但无论如何它让我感觉很好.(即itemcount不能小于0 ...)
function ensure_listbox_ok(handles)
%check to make sure it does not suck - ask what it has
thestrings = get(handles.listbox_files, 'String');
selection = get(handles.listbox_files, 'Value');
itemcount = length(thestrings);
betterselection = selection;
if(itemcount <= 0)
betterselection = 1;
else
if(selection > itemcount)
betterselection = itemcount;
end
end
%never use zero!!!! even …Run Code Online (Sandbox Code Playgroud) matlab user-interface intermittent race-condition matlab-guide