Wasp
Insektenspray-Gegner
Hallo,
mal so ganz fesch gefragt: hat mal wer versucht ports/rox-filer zu bauen? Also bei mir unter FreeBSD 10.2-release unter ix86_64 tut's nicht. :/
Problem ist sys/inotify.h: inotify_init. Dazu finden sich ähnliche Probleme im Internet zu anderen Programmen, aber leider keine Lösung, die -- zumindest mir -- bei rox-filer weiter hilft. Eigentlich ist auch alles da, von daher verstehe ich es auch nicht so ganz.
Zumindest unter Linux soll eine aktuellere bzw. ältere Version (finde Artikel gerade nicht wieder), weitergeholfen haben, allerindgs ist wie gesagt eigentlich auch alles vorhanden (vgl. weiter unten). In den ports kann ich so oder so nur libc++ finden.
Um es besser zu verstehen, habe ich ein simples Beispielprogramm geschrieben.
test-inotify.c:
Bauen mit gcc48:
libinotify als auch funktion in der lib ist vorhanden:
In Bezug auf den erwähnten Artikel, libc ist auch da:
Und ganz trivial, die include-Datei mit der entsprechenden Funktion ist auch da:
Kann ohne ROX-filer der GNU-Banausen leider nicht richtig X11'en. Weiß jemand Rat? :/
Besten Dank im Voraus
Wasp
mal so ganz fesch gefragt: hat mal wer versucht ports/rox-filer zu bauen? Also bei mir unter FreeBSD 10.2-release unter ix86_64 tut's nicht. :/
Problem ist sys/inotify.h: inotify_init. Dazu finden sich ähnliche Probleme im Internet zu anderen Programmen, aber leider keine Lösung, die -- zumindest mir -- bei rox-filer weiter hilft. Eigentlich ist auch alles da, von daher verstehe ich es auch nicht so ganz.
Zumindest unter Linux soll eine aktuellere bzw. ältere Version (finde Artikel gerade nicht wieder), weitergeholfen haben, allerindgs ist wie gesagt eigentlich auch alles vorhanden (vgl. weiter unten). In den ports kann ich so oder so nur libc++ finden.
Um es besser zu verstehen, habe ich ein simples Beispielprogramm geschrieben.
test-inotify.c:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <sys/inotify.h>
int main() {
int fd = inotify_init();
if(fd < 0) {
printf("inotify init failed with error #%d\n", fd);
exit(1);
}
return 0;
}
Bauen mit gcc48:
Code:
~> gcc -v -I/usr/local/include/ -L/usr/local/lib/ -otest-intoify test-inotify.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/lto-wrapper
Target: x86_64-portbld-freebsd10.2
Configured with: ./../gcc-4.8.5/configure --with-build-config=bootstrap-debug --disable-nls --enable-gnu-indirect-function --libdir=/usr/local/lib/gcc48 --libexecdir=/usr/local/libexec/gcc48 --program-suffix=48 --with-as=/usr/local/bin/as --with-gmp=/usr/local --with-gxx-include-dir=/usr/local/lib/gcc48/include/c++/ --with-ld=/usr/local/bin/ld --with-pkgversion='FreeBSD Ports Collection' --with-system-zlib --with-ecj-jar=/usr/local/share/java/ecj-4.5.jar --enable-languages=c,c++,objc,fortran,java --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/info/gcc48 --build=x86_64-portbld-freebsd10.2
Thread model: posix
gcc version 4.8.5 (FreeBSD Ports Collection)
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/' '-L/usr/local/lib/' '-o' 'test-intoify' '-mtune=generic' '-march=x86-64'
/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/cc1 -quiet -v -I /usr/local/include/ test-inotify.c -quiet -dumpbase test-inotify.c -mtune=generic -march=x86-64 -auxbase test-inotify -version -o /tmp//ccwUUi3a.s
GNU C (FreeBSD Ports Collection) version 4.8.5 (x86_64-portbld-freebsd10.2)
compiled by GNU C version 4.8.5, GMP version 5.1.3, MPFR version 3.1.3, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../../../../x86_64-portbld-freebsd10.2/include"
ignoring duplicate directory "/usr/local/include/"
as it is a non-system directory that duplicates a system directory
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/include
/usr/local/include
/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/include-fixed
/usr/include
End of search list.
GNU C (FreeBSD Ports Collection) version 4.8.5 (x86_64-portbld-freebsd10.2)
compiled by GNU C version 4.8.5, GMP version 5.1.3, MPFR version 3.1.3, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 8ee4e6bc4e0e1b7037e8c9a1269e7ea0
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/' '-L/usr/local/lib/' '-o' 'test-intoify' '-mtune=generic' '-march=x86-64'
/usr/local/bin/as -v -I /usr/local/include/ -o /tmp//ccNgadNt.o /tmp//ccwUUi3a.s
GNU assembler version 2.25.1 (x86_64-portbld-freebsd10.2) using BFD version (GNU Binutils) 2.25.1
COMPILER_PATH=/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/:/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/:/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/:/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/:/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/:/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../../../../x86_64-portbld-freebsd10.2/bin/
LIBRARY_PATH=/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/:/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../../../../x86_64-portbld-freebsd10.2/lib/:/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/' '-L/usr/local/lib/' '-o' 'test-intoify' '-mtune=generic' '-march=x86-64'
/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/collect2 --eh-frame-hdr -V -dynamic-linker /libexec/ld-elf.so.1 -o test-intoify /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/crtbegin.o -L/usr/local/lib/ -L/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5 -L/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../../../../x86_64-portbld-freebsd10.2/lib -L/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/../../.. /tmp//ccNgadNt.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.2/4.8.5/crtend.o /usr/lib/crtn.o
GNU ld (GNU Binutils) 2.25.1
Supported emulations:
elf_x86_64_fbsd
elf_i386_fbsd
elf_x86_64
elf_i386
elf_l1om
elf_l1om_fbsd
elf_k1om
elf_k1om_fbsd
/tmp//ccNgadNt.o: In function `main':
test-inotify.c:(.text+0x9): undefined reference to `inotify_init'
collect2: error: ld returned 1 exit status
libinotify als auch funktion in der lib ist vorhanden:
Code:
:~ 1> strings /usr/local/lib/libinotify.so.0.0.0 | grep -i inotify
inotify_add_watch
inotify_init
inotify_init1
inotify_rm_watch
libinotify.so.0
In Bezug auf den erwähnten Artikel, libc ist auch da:
Code:
~ 1> ldconfig -r | grep -i libc\\.
34:-lc.7 => /lib/libc.so.7
Und ganz trivial, die include-Datei mit der entsprechenden Funktion ist auch da:
Code:
~ 1> grep -i _init -C1 /usr/local/include/sys/inotify.h
/* Flags for the parameter of inotify_init1. */
#define IN_CLOEXEC 02000000 /* Linux x86 O_CLOEXEC */
--
/* Create and initialize inotify-kqueue instance. */
INO_EXPORT int inotify_init (void) __THROW;
/* Create and initialize inotify-kqueue instance. */
INO_EXPORT int inotify_init1 (int flags) __THROW;
Kann ohne ROX-filer der GNU-Banausen leider nicht richtig X11'en. Weiß jemand Rat? :/
Besten Dank im Voraus
Wasp