Ich möchte Asterisk PBX unter Windows bauen, scheint es möglich zu sein, indem Sie cygwin verwenden.Versuchen, Asterisk unter Windows mit Cygwin zu kompilieren, kann libuuid nicht finden
Das Konfigurationsskript klagt darüber, dass die uuid_generate_random-Methode in der UUID-Bibliothek nicht gefunden wurde. So
Ich versuchte, ein wenig Testprogramm zu erstellen:
#include <uuid/uuid.h>
int main()
{
uuid_t out;
uuid_generate_random(out);
return 0;
}
Dieses Programm kompiliert wird mit diesem Befehl: gcc uuid.c -luuid
Die -luuid zu Werken scheint, als ob ich ändern Dieser Wert (wie -luuidX) gcc beklagt sich darüber, dass er die uuidX-Bibliothek nicht finden kann.
Aber die LD Pass nicht funktioniert nicht:
$ gcc uuid.c -luuid
/tmp/ccu0oh9q.o:uuid.c:(.text+0x16): undefined reference to `uuid_generate_random'
collect2: error: ld returned 1 exit status
Ich schaffe um zu arbeiten, aber das ist nicht wirklich sauber, und ich weiß nicht, wie das Configure-Skript machen dieses zwicken nehmen:
gcc -o uuid.exe uuid.o /cygdrive/c/cygwin/lib/libuuid.dll.a
Irgendeine Idee wo kommt das Problem her?
Danke.
Hinzugefügt: ausführliche gcc Ausgabe
gcc -v uuid.c -luuid
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/5.3.0/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: /cygdrive/i/szsz/tmpp/gcc/gcc-5.3.0-4.i686/src/gcc-5.3.0/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-5.3.0-4.i686/src/gcc-5.3.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-arch=i686 --with-tune=generic --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libada --enable-libjava --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible
Thread model: posix
gcc version 5.3.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
/usr/lib/gcc/i686-pc-cygwin/5.3.0/cc1.exe -quiet -v -Dunix -idirafter /usr/lib/../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/lib/../../include/w32api uuid.c -quiet -dumpbase uuid.c -mtune=generic -march=i686 -auxbase uuid -version -o /tmp/ccVIcgnD.s
GNU C11 (GCC) version 5.3.0 (i686-pc-cygwin)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/5.3.0/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/include"
ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/i686-pc-cygwin/5.3.0/include
/usr/include
/usr/lib/../include/w32api
End of search list.
GNU C11 (GCC) version 5.3.0 (i686-pc-cygwin)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f4218c97435c4e66cb956a0e671020d7
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/bin/as.exe -v -o /tmp/cc0dlffC.o /tmp/ccVIcgnD.s
GNU assembler version 2.25.2 (i686-pc-cygwin) using BFD version (GNU Binutils) 2.25.2
COMPILER_PATH=/usr/lib/gcc/i686-pc-cygwin/5.3.0/:/usr/lib/gcc/i686-pc-cygwin/5.3.0/:/usr/lib/gcc/i686-pc-cygwin/:/usr/lib/gcc/i686-pc-cygwin/5.3.0/:/usr/lib/gcc/i686-pc-cygwin/:/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/bin/
LIBRARY_PATH=/usr/lib/gcc/i686-pc-cygwin/5.3.0/:/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/lib/:/usr/lib/:/lib/:/usr/lib/w32api/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
/usr/lib/gcc/i686-pc-cygwin/5.3.0/collect2.exe -plugin /usr/lib/gcc/i686-pc-cygwin/5.3.0/cyglto_plugin.dll -plugin-opt=/usr/lib/gcc/i686-pc-cygwin/5.3.0/lto-wrapper.exe -plugin-opt=-fresolution=/tmp/ccFo5pxm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lcygwin -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --wrap _Znwj --wrap _Znaj --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwjRKSt9nothrow_t --wrap _ZnajRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --large-address-aware --tsaware /usr/lib/crt0.o /usr/lib/gcc/i686-pc-cygwin/5.3.0/crtbegin.o -L/usr/lib/gcc/i686-pc-cygwin/5.3.0 -L/usr/lib/gcc/i686-pc-cygwin/5.3.0/../../../../i686-pc-cygwin/lib -L/usr/lib/w32api /tmp/cc0dlffC.o -luuid -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/lib/default-manifest.o /usr/lib/gcc/i686-pc-cygwin/5.3.0/crtend.o
/tmp/cc0dlffC.o:uuid.c:(.text+0x16): undefined reference to `uuid_generate_random'
collect2: error: ld returned 1 exit status
gcc uuid.c -luuid' funktioniert für mich. Versuchen Sie 'gcc -v uuid.c -luuid', um zu sehen, welche Optionen nicht übereinstimmen. – matzeri
Dank @matzeri, ich habe meine Frage geändert. –
Ich korrigiere mich selbst. Es funktioniert auf 64 Bit, schlägt aber auf 32 Bit fehl. Ich schlage vor, die Frage auf der Cygwin-Mailingliste zu stellen. 'https: // cygwin.com/cygwin/lists.html' Es scheint ein Paketfehler zu sein. – matzeri