mit-biomimetics / Cheetah-Software

MIT License
2.53k stars 911 forks source link

stropts.h : No such file or directory #39

Closed EvanMassonnet closed 4 years ago

EvanMassonnet commented 4 years ago

Hi, I have a problem during installation with "make -j" . At 78% I have this error " stropts.h : No such file or directory" with sim/CMakerFiles/sim.dir/include/moc_JoystickTest.cpp.o After that , the last message is "waiting for finished jobs ..." and my computer crash.

Computer : MSI gl62mvr 7rfx Linux : Ubuntu 20.04 ( with acpi=off during installation)

Robert-Robotics commented 4 years ago

I'm having the same error, what was the solution here?

LeoSource commented 4 years ago

what was the solution here? I tried touch /sur/include/stropts.h, and then the problem was disappeared, but there are some problems else.

EvanMassonnet commented 4 years ago

I don't know exactly what was the problem but it seems to be a problem of compatibility version between Eigen, LCM and QT. For me , it works with this configuration : Ubuntu 18.04.4 Eigen 3.3.90 QT 5.12.4 lcm 1.3.1 java 1.6.0

During the installation of each component, be sure that no error appears or try to solve it before install the next component, especially with LCM which installed very badly for me.

LeoSource commented 4 years ago

Thanks for your reply。 My configuration: Ubuntu 20.04 Eigen 3.3.7 Qt 5.14.2 lcm 1.4.0 By the way, i've not install java yet. The problem else is that

In file included from /usr/include/x86_64-linux-gnu/asm/termios.h:1, from /home/zxliao/Documents/mit-biomimetics_Cheetah-master/robot/src/rt/rt_serial.cpp:15: /usr/include/asm-generic/termios.h:15:8: error: redefinition of ‘struct winsize’ 15 | struct winsize { | ^~~ In file included from /usr/include/x86_64-linux-gnu/sys/ioctl.h:29, from /home/zxliao/Documents/mit-biomimetics_Cheetah-master/robot/src/rt/rt_serial.cpp:11: /usr/include/x86_64-linux-gnu/bits/ioctl-types.h:27:8: note: previous definition of ‘struct winsize’ 27 | struct winsize | ^~~ In file included from /usr/include/x86_64-linux-gnu/asm/termios.h:1, from /home/zxliao/Documents/mit-biomimetics_Cheetah-master/robot/src/rt/rt_serial.cpp:15: /usr/include/asm-generic/termios.h:23:8: error: redefinition of ‘struct termio’ 23 | struct termio { | ^~ In file included from /usr/include/x86_64-linux-gnu/sys/ioctl.h:29, from /home/zxliao/Documents/mit-biomimetics_Cheetah-master/robot/src/rt/rt_serial.cpp:11: /usr/include/x86_64-linux-gnu/bits/ioctl-types.h:36:8: note: previous definition of ‘struct termio’ 36 | struct termio | ^~

I finally solve this problem by this solution https://www.toradex.com/community/questions/7445/custom-baudrate-on-vybrid-soc.html using #include <asm/ioctls.h> and #include<asm/termbits.h> instead of //#include <asm/termios.h> in rt_serial.cpp

cyoahs commented 4 years ago

Same problem in ubuntu 20.04

For me, this problem is caused by the default new version of glibc, from which stropts.h has been removed. I solved this problem by commenting #include <asm/termios.h> (line 17) and #include/stropts.h (line 24) in rt_serial.cpp and replacing them with

#include <asm/ioctls.h>
#include <sys/ioctl.h>
#include <asm/termbits.h>

Thanks @LeoSource for suggestion :) and hope this change can be adopted for better system compatibility.

RyodoTanaka commented 3 years ago

Thanks for @cyoahs , I also fixed the same problem. I am running my environment as below.

Version Installation method
Ubuntu 20.04 Working on Docker image.
Kernel x86_64 Linux 5.4.0-56-generic
Eigen 3.3.7 sudo apt install libeigen3-dev
QT 5.15.2 https://www.qt.io/download-qt-installer (using online installer)
lcm 1.4.0 Source build from https://github.com/lcm-proj/lcm.git . (checkout to refs/tags/v1.4.0)
Java 1.8.0_275 sudo apt install openjdk-8-jdk

I also modified source code and CMakeLists.txt . Here is my focal-devel branch forked from this repository.

I also created the docker image which I mentioned above. (The image size is a bit large... be careful ! )