sdcv
sdcv copied to clipboard
link error on netbsd
~/sdcv-0.5.2/obj $ cmake ..
~/sdcv-0.5.2/obj $ make
[ 12%] Linking CXX executable sdcv
ld: cannot find -lglib-2.0
......
~/sdcv-0.5.2/obj $ pkg-config --libs glib-2.0
-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lglib-2.0 -lintl
~/sdcv-0.5.2/obj $ ls /usr/pkg/lib | grep -i glib glib-2.0 libdbus-glib-1.a libdbus-glib-1.la libdbus-glib-1.so libdbus-glib-1.so.2 libdbus-glib-1.so.2.3.3 libglib-2.0.a libglib-2.0.la libglib-2.0.so libglib-2.0.so.0 libglib-2.0.so.0.5200.3
Regards!
@sw2wolf thanks for report, can you run
~/sdcv-0.5.2/obj $ make
in such way make VERBOSE=1
and post output here?
CMake is terrible at finding libraries. You can pass something like -DGLIB2_INCLUDE_DIRS=/wherever
and -DGLIB2_LIBRARIES=/usr/pkg/lib/libglib-2.0.so
to beat it into submission.
Do you mean make -DGLIB2_LIBRARIES=/usr/pkg/lib/libglib-2.0.so ...
? If so , same error !
No, that's for cmake. :-)
@Dushistov
... [ 87%] Building CXX object CMakeFiles/sdcv.dir/src/distance.cpp.o /usr/bin/c++ -DHAVE_CONFIG_H -DVERSION=\"0.5.2\" -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include -I/home/eagl eZZZ/sdcv-0.5.2/src/lib -I/home/eagleZZZ/sdcv-0.5.2/obj -std=c++11 -Wall -o CMakeFiles/sdcv.dir/src/distance.cpp.o -c /home/eagleZZZ/sdcv-0.5.2/sr c/distance.cpp [100%] Linking CXX executable sdcv /usr/pkg/bin/cmake -E cmake_link_script CMakeFiles/sdcv.dir/link.txt --verbose=1 /usr/bin/c++ -std=c++11 -Wall CMakeFiles/sdcv.dir/src/sdcv.cpp.o CMakeFiles/sdcv.dir/src/readline.cpp.o CMakeFiles/sdcv.dir/src/libwrapper.cpp .o CMakeFiles/sdcv.dir/src/utils.cpp.o CMakeFiles/sdcv.dir/src/stardict_lib.cpp.o CMakeFiles/sdcv.dir/src/dictziplib.cpp.o CMakeFiles/sdcv.dir/src /distance.cpp.o -o sdcv -Wl,-rpath,/usr/pkg/lib: -lglib-2.0 -lintl /usr/lib/libz.so /usr/pkg/lib/libreadline.so ld: cannot find -lglib-2.0 *** Error code 1
@Frenzie
$ cmake -DGLIB2_LIBRARIES=/usr/pkg/lib/libglib-2.0.so ..
works but
`$ sdcv
Shared object "libglib-2.0.so.0" not found
So i
ln -s` libglib-2.0.so.0 and libreadline.so.7 in /usr/pkg/lib to /usr/lib to fix those "not found" problem manually. And it works on netbsd-7.1 now. However, on openbsd-6.2 there is the following issue:
CMakeFiles/sdcv.dir/src/readline.cpp.o:(.data.rel.ro.local+0x30): undefined reference to `_ZL22__gthrw_pthread_cancelP7pthread'
`
$ find /usr/lib -name "libpthread*"
/usr/lib/libpthread.so.24.0
/usr/lib/libpthread.a
/usr/lib/libpthread_p.a
$nm -g /usr/lib/libpthread.a | grep -i pthread_cancel
00000a60 T pthread_cancel
`
Regards!