llvm/Support/TargetRegistry.h: No such file or directory - linux

I have this error when I make project in WSL(Ubuntu 20.04). And I have installed LLVM and Clang.Hou should I do?
Kconfig Makefile README.md build configs include resource scripts src tools
why#YOGA:~/ics2021/nemu$ make
+ CXX src/utils/disasm.cc
src/utils/disasm.cc:5:10: fatal error: llvm/Support/TargetRegistry.h: No such file or directory
5 | #include "llvm/Support/TargetRegistry.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/why/ics2021/nemu/scripts/build.mk:40: /home/why/ics2021/nemu/build/obj-riscv32-nemu-interpreter/src/utils/disasm.o] Error 1```

Actually, It's part of the NJU ICS Course project, and the right path should be #include "llvm/MC/TargetRegistry.h". For llvm-11, the file is in "llvm/Support/TargetRegistry.h". But for llvm-14, it's in "llvm/MC/TargetRegistry.h". You should check where the TargetRegistry.h is. For me with Ubuntu, the file is at /usr/include/llvm/MC/.

to continue the pa0, just install llvm11 by apt-get install llvm-11 then follow the PA0 Guide to change the nemu/src/utils/filelist.mk

Related

How to not use /usr/local/lib after uninstalling self build package?

Initially, I had pcl-1.10 in /usr/(installed using sudo apt install libpcl-dev). Then I self-built pcl-1.12 in /usr/local/ for some reason. Now I uninstalled pcl-1.12 using sudo make uninstall and wanted to use the default pcl-1.10. But when I compiled my project, the error message showed
$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
Starting >>> lidarslam_msgs
Starting >>> ndt_omp_ros2
--- stderr: ndt_omp_ros2
make[2]: *** No rule to make target '/usr/local/lib/libpcl_surface.so', needed by 'align'. Stop.
make[1]: *** [CMakeFiles/Makefile2:80: CMakeFiles/align.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< ndt_omp_ros2 [0.16s, exited with code 2]
It seems that the PATH stills points to the /usr/local/lib even if I uninstalled the package. Is there a way I can reset PATH to the global package path? For this case, I believe the pcl-1.10's libpcl_surface.so is in /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so .
I am working on ROS2 and compiling the CMakeList.txt using colcon. So I can't modify the makefile. I assume it is a PATH problem.
A way is to use symlink to link all the .so file in /usr/lib/x86_64-linux-gnu/ to /usr/local/lib but I found it kind of stupid...

Cygwin -- installing `tcl-devel` packages does not provide header files

I have some makefile that is used to compile a program. During compilation I get an error:
In file included from kernel/driver.cc:20:
./kernel/yosys.h:81:12: fatal error: tcl.h: No such file or directory
81 | # include <tcl.h>
| ^~~~~~~
compilation terminated.
make: *** [Makefile:696: kernel/driver.o] Error 1
Then I rerun Cygwin setup application and install new package tcl-devel. I restart the Cygwin terminal and try again. The same error pops up. I don't understand! Why aren't headers found?
My tcl and tcl-devel are both of version 8.6.11-1.

PCL 1.8.0 installation: Compile error for including QtGui

I'm trying to build PCL 1.8.0 on my Ubuntu 14.04 machine from source, following these instructions. But every time I get the following error:
[ 73%] Building CXX object apps/CMakeFiles/pcl_manual_registration.dir/include/pcl/apps/moc_manual_registration.cpp.o
In file included from ~/pcl/release/apps/ui_manual_registration.h:26:0,
from ~/pcl/release/apps/include/pcl/apps/../../../../../apps/include/pcl/apps/manual_registration.h:37,
from ~/pcl/release/apps/include/pcl/apps/moc_manual_registration.cpp:9:
/usr/include/vtk-5.8/QVTKWidget.h:40:25: fatal error: QtGui/QWidget: No such file or directory
#include <QtGui/QWidget>
^
compilation terminated.
make[2]: *** [apps/CMakeFiles/pcl_manual_registration.dir/include/pcl/apps/moc_manual_registration.cpp.o] Error 1
make[1]: *** [apps/CMakeFiles/pcl_manual_registration.dir/all] Error 2
make: *** [all] Error 2
for locate QWidget I get amongst others the following output:
...
/usr/include/qt4/QtGui/QWidget
...
/usr/include/qt5/QtWidgets/QWidget
...
So how can I resolve the error and install pcl?
The problem happens because your configuration is trying to mix Qt4 and Qt5 during PCL build.
According to the link you've provided, PCL is suppossed so be built against Qt4 in this case.
Try to remove everything in release directory and re-initialize CMake config with correct version of Qt.
Like that (following provided example):
cd ~/Documents/pcl
rm -rf relese
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=Release -DPCL_QT_VERSION=4 -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON ..
make

glfw makefile fails upon "generating html documentation" on Ubuntu

I am trying to compile and install glfw 3.1.1 for Ubuntu 14.10. The cmake finished successfully, however, when I go to execute the makefile through make it fails at the following:
[ 98%] Building C object tests/CMakeFiles/windows.dir/windows.c.o
Linking C executable windows
[ 98%] Built target windows
Scanning dependencies of target docs
[100%] Generating HTML documentation
Error: tag HTML_HEADER: header file `/home/dennis/Documents/LearningOpenGL/glfw-3.1.1/docs/header.html' does not exist
docs/CMakeFiles/docs.dir/build.make:52: recipe for target 'docs/CMakeFiles/docs' failed
make[2]: *** [docs/CMakeFiles/docs] Error 1
CMakeFiles/Makefile2:1184: recipe for target 'docs/CMakeFiles/docs.dir/all' failed
make[1]: *** [docs/CMakeFiles/docs.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
At first I thought that it is failing an optional step but then I realized that I can't compile my test project as it complains about the glfw header:
main.cpp:2:24: fatal error: GLFW/glfw3.h: No such file or directory
#include <GLFW/glfw3.h>
Thanks
Found the answer! I had to disable the "build documentation" option in the cmake gui.
It seems you just skip compiling the doc instead of fix it.
Simply go to docs/CMakeFiles/docs.dir, modify the file build.make.
For the build target docs/CMakeFiles/docs:, change the doxygen command
from:
doxygen.exe
to
doxygen.exe .

build octave package from source

I want to install octaviz package in octave software.
From the documentation there is stated:
-You'll need octave 2.1.53 or later and VTK CVS to build octaviz. To compile octaviz, run ccmake . in the root directory of the source tree, then make and finally make install.
I first ran ccmake ., and it completed successfully after I installed some libs that I was missing.
But, the I ran "make" and it exits with the following errors:
>> make
[ 1%] Built target vtkWrapOctave
[ 1%] Building CXX object Common/CMakeFiles/octaviz.dir/octaviz.o
/home/user12345/octave/octaviz/Common/octaviz.cc:31:24: fatal error: octave/oct.h: No such file or directory
#include <octave/oct.h>
^
compilation terminated.
make[2]: *** [Common/CMakeFiles/octaviz.dir/octaviz.o] Error 1
make[1]: *** [Common/CMakeFiles/octaviz.dir/all] Error 2
make: *** [all] Error 2
Any idea what I am missing here?
You are missing the octave/oct.h header. This usually means that you don't have Octave installed. If you do have it installed, maybe you are missing the header files and shared libraries (if you are using Linux, did you install octave's -dev or -devel packaqes?) If you have them installed, you must have ran the configure script incorrectly. Either specify the correct options or set the CXX_FLAGS. If you don't know about compiler flags you probably should not change them and instead figure out how to install the octave libraries correctly.

Resources