Я портирую исходный код для расширения PHP, которое было изначально написано для среды UNIX.
Я разрешил все зависимости библиотек и успешно скомпилировал их, однако сервер EasyPHP, который мы используем для тестирования, отказывается загружать модуль DLL.
Я предположил, что это потому, что я скомпилировал DLL, используя набор инструментов платформы Visual Studio 2015 (v140), в то время как оригинальный PHP сервер использует исходный код v11, насколько я знаю.
Однако при изменении проекта с v140 на набор инструментов Visual Studio 2012 (v110) возникают следующие ошибки:
LNK1120 5 unresolved externals DINAPIS_PHP_MATH
LNK2001 unresolved external symbol __imp____stdio_common_vsprintf DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(dump.obj)
LNK2001 unresolved external symbol __imp____stdio_common_vsprintf DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(error.obj)
LNK2019 unresolved external symbol __imp____acrt_iob_func referenced in function _json_loadf DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(load.obj)
LNK2019 unresolved external symbol __imp____stdio_common_vsprintf referenced in function __vsnprintf_l DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(load.obj)
LNK2019 unresolved external symbol __imp__strtoll referenced in function _lex_scan_number DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(load.obj)
LNK2001 unresolved external symbol __imp____stdio_common_vsprintf DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(strconv.obj)
LNK2019 unresolved external symbol __imp___dclass referenced in function _json_real DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(value.obj)
LNK2019 unresolved external symbol __ltod3 referenced in function _json_number_value DINAPIS_PHP_MATH D:\[...]\jansson_d.lib(value.obj)
LNK2005 _sprintf already defined in jansson_d.lib(dump.obj) DINAPIS_PHP_MATH D:\Projects\Dinapis PHP Math\php-extension-win\DINAPIS_PHP_MATH\DINAPIS_PHP_MATH\MSVCRTD.lib(MSVCR110D.dll)
Как видите, эта библиотека «jansson» создает все проблемы и доставляет мне головную боль при оригинальном портировании.
Так чего же не хватает в наборе инструментов v110, который выдает эти ошибки, когда v140 компилируется нормально? Как это решить?
Спасибо!
Задача ещё не решена.
Других решений пока нет …