Page 2 of 2
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by skorpion
Åhh, jag blandade ihop det jag försökte kompilera. (PHP-extension och telldus-core)
Men jag fastnar ändå :/
Vid körande av: ./configure --enable-telldus så får jag ju:
Code: Select all
checking for telldus files in default path... not found
configure: error: Please reinstall the telldus-core distribution
Nu sa ju du att jag ska använda -framework till gcc.
Det är nu jag inte riktigt hänger med riktigt. GCC??? Ersätta ./configure med gcc helt?
Jag testar iaf: ./configure --enable-telldus -framework TelldusCore utan framgång
Testar: ./configure --enable-telldus CFLAGS="-framework TelldusCore" och får detta resultat:
Code: Select all
checking for telldus files in default path... not found
configure: error: Please reinstall the telldus-core distribution
Testar jag: gcc -framework TelldusCore så får jag:
Code: Select all
Undefined symbols:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Vad är det som jag missat?
MVH Niclas
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
configure skapar bara makefiler. Du får in i byggfilerna som phpize använder. D.v.s. config.m4.
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by skorpion
Jag tycker inte att jag hittar något som har med -framework eller gcc att göra i config.m4
Däremot så hittar jag:
Code: Select all
SEARCH_PATH="/usr/local /usr"
SEARCH_FOR="/include/telldus-core.h"
Byter jag ut det mot:
Code: Select all
SEARCH_PATH="/usr/local /usr /Library/Frameworks/TelldusCore.framework/Versions/2.0.3/Headers/"
SEARCH_FOR="telldus-core.h"
så kommer jag lite längre:
Code: Select all
checking for telldus files in default path... found in /Library/Frameworks/TelldusCore.framework/Versions/2.0.3/Headers/
checking for tdGetNumberOfDevices in -ltelldus-core... no
configure: error: wrong telldus lib version or lib not found
tdGetNumberOfDevices finns ju i telldus-core:
Code: Select all
cat /Library/Frameworks/TelldusCore.framework/Versions/2.0.3/Headers/telldus-core.h | grep tdGetNumberOfDevices
TELLSTICK_API int WINAPI tdGetNumberOfDevices();
Vad blir nästa steg?
/Niclas
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Nästa steg blir att få testen som kollar efter tdGetNumberOfDevices att fungera och att bygga wrappern genom att använda "-framework". Troligtvis löser du båda när du löser det ena.
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by skorpion
Attans, hade nästan hoppats med att inte behöva fråga dig nå mer nu
Raden:
Code: Select all
PHP_ADD_INCLUDE($TELLDUS_DIR/include)
Kommer ju inte stämma, jag vet inte vad den vill inkludera så jag vet inte vad den riktiga sökvägen ska vara. Har du koll på det?
$TELLDUS_DIR är satt till: /Library/Frameworks/TelldusCore.framework/Versions/2.0.3
Sedan har vi raderna:
Code: Select all
PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
[
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $TELLDUS_DIR/lib, TELLDUS_SHARED_LIBADD)
AC_DEFINE(HAVE_TELLDUSLIB,1,[ ])
],[
AC_MSG_ERROR([wrong telldus lib version or lib not found])
],[
-L$TELLDUS_DIR/lib -lm
])
Det finns 2 st /lib som inte heller kommer att stämma, då dessa kataloger inte finns i $TELLDUS_DIR. Det finns däremot en Libraries i $TELLDUS_DIR som enbart innehåller: libftd2xx.0.1.4.dylib
Byter jag ut /lib mot /Libraries så får jag samma fel som innan :/
Nåt mer man kan leta på och ändra?
MVH Niclas
Re: OS X och PHP-extension, hittar inte telldus-core?
Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Jag skulle snarare satt det så här:
Code: Select all
TELLDUS_DIR=/Library/Frameworks/TelldusCore.framework
PHP_ADD_INCLUDE($TELLDUS_DIR/Headers)
SEARCH_FOR="/Headers/telldus-core.h"
Kanske kan man labba lite med:
typ:
Code: Select all
-L$TELLDUS_DIR/lib -lm -framework TelldusCore
Men här är vi ute på djupt vatten. Bättre vore att kolla hur något annat PECL-bibliotek kompileras under OSX. Det är så jag gjorde när jag skrev denna wrappern till Linux.