Compiling gizmod fails with errors on Fedora 13:
gizmod-3.5/libGizmod/CPUUsage.cpp: In constructor ‘Gizmod::CPUUsageInfo::CPUUsageInfo()’:
gizmod-3.5/libGizmod/CPUUsage.cpp:83: error: ‘memset’ was not declared in this scope
and linking fails with:
/usr/bin/ld: CMakeFiles/gizmod.dir/GizmoDaemon.o: undefined reference to symbol 'boost::system::get_system_category()'
/usr/bin/ld: note: 'boost::system::get_system_category()' is defined in DSO /usr/lib64/libboost_system.so.1.41.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.41.0: could not read symbols: Invalid operation
Here's what I needed to do to get Gizmod working on Fedora 13, 64bit:
Follow the first steps of the normal INSTALL process:
tar jxvf gizmod-X.x.tar.bz2
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc ../gizmod-X.x
Running make will fail, requiring changes:
Edit gizmod-3.5/libGizmod/CPUUsage.cpp and add:
#include <string.h>
after #include <boost/thread/thread.hpp> in list of includes.
Run make, once that fails at linking edit:
build/gizmod/CMakeFiles/gizmod.dir/link.txt
and add -lboost_system to the long line of libraries:
… -lboost_filesystem -lboost_thread-mt -lboost_serialization -lboost_system -lboost_python …
Run make again. Now it should complete without errors.
As root, make install
The libraries get put in the wrong place for a 64 bit setup, so as root move them to the /usr/lib64 dir:
cd /usr/lib64
mv /usr/lib/libGizmod.so* .
The input devices are not accessible to users by default. I deal with this by creating an input group, and having a udev rule that gives access to users in that group. As root:
groupadd input
gpasswd -a your_user_name input
cd /etc/udev/rules.d/
Create a file called 99-input.rules and put in it:
KERNEL=="event*", NAME="input/%k", MODE="660", GROUP="input"
KERNEL=="js*", NAME="input/%k", MODE="664", GROUP="input"
Reboot.
On restart you should be able to log in, launch gizmod, and have it detect your devices.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Compiling gizmod fails with errors on Fedora 13:
gizmod-3.5/libGizmod/CPUUsage.cpp: In constructor ‘Gizmod::CPUUsageInfo::CPUUsageInfo()’:
gizmod-3.5/libGizmod/CPUUsage.cpp:83: error: ‘memset’ was not declared in this scope
and linking fails with:
/usr/bin/ld: CMakeFiles/gizmod.dir/GizmoDaemon.o: undefined reference to symbol 'boost::system::get_system_category()'
/usr/bin/ld: note: 'boost::system::get_system_category()' is defined in DSO /usr/lib64/libboost_system.so.1.41.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.41.0: could not read symbols: Invalid operation
Here's what I needed to do to get Gizmod working on Fedora 13, 64bit:
Follow the first steps of the normal INSTALL process:
tar jxvf gizmod-X.x.tar.bz2
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc ../gizmod-X.x
Running make will fail, requiring changes:
Edit gizmod-3.5/libGizmod/CPUUsage.cpp and add:
#include <string.h>
after #include <boost/thread/thread.hpp> in list of includes.
Run make, once that fails at linking edit:
build/gizmod/CMakeFiles/gizmod.dir/link.txt
and add -lboost_system to the long line of libraries:
… -lboost_filesystem -lboost_thread-mt -lboost_serialization -lboost_system -lboost_python …
Run make again. Now it should complete without errors.
As root, make install
The libraries get put in the wrong place for a 64 bit setup, so as root move them to the /usr/lib64 dir:
cd /usr/lib64
mv /usr/lib/libGizmod.so* .
The input devices are not accessible to users by default. I deal with this by creating an input group, and having a udev rule that gives access to users in that group. As root:
groupadd input
gpasswd -a your_user_name input
cd /etc/udev/rules.d/
Create a file called 99-input.rules and put in it:
KERNEL=="event*", NAME="input/%k", MODE="660", GROUP="input"
KERNEL=="js*", NAME="input/%k", MODE="664", GROUP="input"
Reboot.
On restart you should be able to log in, launch gizmod, and have it detect your devices.
Thanks a lot for posting this, b_daniels. I'll try to create a .SPEC file for Fedora 13 and make an RPM for gizmo.
Regards.