How do you install Eigen? - visual-studio-code

I'm a complete beginner at Eigen, including headers and coding in general. I tried installing Eigen's libraries to do some stuff in Visual Studio Code but I can't find the solution, or rather I don't understand what the answers mean.
I have downloaded the zip from the site but don't know what to do with it. My main question is, should you not be able to see the definition to #include <eigen3/Eigen/Dense> in vscode? Because I can't and I don't understand if I'm supposed to.
I hear many of the answers say "Eigen c++ is a header only library: you don't have to install it, you just download it, unzip it and link your code against it." so does that mean i need to place the Eigen/Dense files in the default include? Because when I do I can't find them when I right click on /Dense> in the include code. Do I include them in my environment variables?

1. Download Eigen
$ wget -O Eigen.zip https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
2. Extract and copy to /usr/local/include
$ unzip Eigen.zip # it has unzipped into the library called eigen-3.4.0
$ sudo cp -r eigen-3.4.0/Eigen /usr/local/include
Now you can compile your source files

You need to add the directory to which you copied Eigen to the include path of your project. After this #include<Eigen/Dense> should work.
Please google "visual C++ add directory to include path" to see how this is done.

Related

Use (libccd) shared library for MATLAB

I want to do collision detection in MATLAB. In MATLAB its possible to include a shared library written in C with
loadlibrary();
I found a collision detection library written in C:
https://github.com/danfis/libccd
The documentary says that
mkdir build && cd build
cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON ..
make && make install
build libccd as a shared library. After execute these commands in terminal I get a libccd.dylib. Thats what I need for MATLAB...
loadlibrary('libccd');
But MATLAB wants a header file (or more than one) in addition to the shared library.
https://www.mathworks.com/help/matlab/ref/loadlibrary.html
So I added the ccd.h file to the loadlibrary command. Then the problem is that ccd.h includes another header file but in an under folder: ccd/vec3.h
It seems that MATLAB has a problem with this.
So my questions are:
I don't know if the ccd.h file is the correct file to link first. Which one should I use?
How to resolve the problem that MATLAB can not find a file in another path
I don't know what
mkdir build && cd build
cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON ..
make && make install
does. Maybe I should build a shared library my own. But I am not a programmer and never worked with Cmake, Makefiles and so on.
Thanks for every help
I think you need to use the 'addheader'option to loadlibrary.
loadlibrary('libccd', 'ccd.h', 'addheader', 'ccd/vec3')
Rinse and repeat for all the headers it needs.

GTK+ via MSYS2 with CodeBlocks

Might be a dumb question, but how to use GTK+ (or its language bindings) with CodeBlocks in Windows? Official site gtk.org shows downloading after installing msys2, via pacman. After doing that and adding C://msys64/mingw64/bin to variable path the CodeBlocks still doesn't "see" gtk header files in include since they're in gtk-3.0/gtk/ instead of gtk/. I thought to myself that I should move files one dir up, but then after finding gtk header files, CodeBlocks is unable to find its dependencies (since they are also in some gdk-pixbuf-2.0/gdk-pixbuf instead of gdk-pixbuf/).
I was able to find gtk-bundle in some third party site, which contains all needed files and headers. After extracting them into C://gtk/ and adding it to variable path I was able to get started with gtk. However after trying to get gtkmm (C++ binding for gtk) I've ran into same problem, install only via msys2, but unfortunately no bundle archive could be found.
Any help regarding how to use libraries installed via msys2 properly would be great. Thanks in advance.
For further usage. So after long searches and tries I've found a solution to my problem.
After installing GTK+ (or any of language bindings) via msys2 what you need to do is to use 'pkg-config gtk+-3.0 --cflags --libs > link.txt' in cmd (first cd to convenient location), this will generate .txt file with linker settings. Copy all content to CodeBlocks > linker settings. And that's where the boring part comes in. In order for CB to find all headers and dependencies, need to add all folders listed in .txt file needs to be added to CB > Search Directories.
These were the steps that allowed me to compile GTK+ and gtkmm wit CodeBlocks.

how to uninstall doxygen using make file on Ubuntu (12.04)?

I am using Ubuntu 12.04. I have installed doxygen 1.8.3.1 using make install.
I would like to uninstall the doxygen built by make, but I don't find any way to do it using make (uninstall or clean...).
In the Makefile there is no reference to uninstall it the software. :(
Unfortunately I can't use the sudo apt-get remove doxygen because it wasn't an installed. :(
I don't find anything related on the internet.
Can anyone help me, please?
Thank you in advance,
Fabiola
There is no "uninstall" target. You need to do a "rm" be hand. If you used the standard prefix path "/usr/local" then
rm /usr/local/bin/doxygen
rm /usr/local/man/man.1/doxygen.1
(more if you install the docs are wizard). Depend on the user used for install, you need sudo to do it.
I know this question is old, but since it is the first result in google I would like to share another way of uninstalling Doxygen built from source. In the build directory where you've ran make there should by a file name install_manifest.txt. That file contains paths to files that were installed using make install command. All you need to do is to run the following command:
sudo xargs rm < install_manifest.txt
Of course this assumes that you've kept the build directory or at least the install_manifest.txt file. If not you need to remove the files by hand as somebody already suggested.

How to convert WOFF to TTF/OTF via command line?

I know about services like Online Font Converter, but I am interested in offline solution, preferably over command line. Does anyone know a tool or workflow how to convert WOFF to OTF/TTF offline?
I wrote a simple tool for that:
https://github.com/hanikesn/woff2otf
Currently only tested with ttf files.
Here is the reference code for making WOFF files: http://people.mozilla.org/~jkew/woff/ I have a mirror: https://github.com/samboy/WOFF
To compile and install, make sure you have the zlib development libraries installed (e.g. in CentOS6 yum -y install zlib-devel as root), then
git clone https://github.com/samboy/WOFF
cd WOFF
make
Then, as root:
cp sfnt2woff /usr/local/bin
Once this is done, to make a webfont, enter the directory with the .ttf file, then run sfnt2woff
sfnt2woff Chortle2014f.ttf
This creates a Chortle2014f.woff webfont file. Replace “Chortle2014f.ttf” with the name of the actual webfont to convert.
The first link I provide has Windows and MacOS binaries for people who do not wish to install a compiler.
Here is the reference code for making WOFF2 files: https://github.com/google/woff2 Note that this code will not install in CentOS6, but compiles and installs just fine in CentOS7:
git clone --recursive https://github.com/google/woff2.git
cd woff2
make clean all
woff2 font generation is similar:
woff2_compress Chortle2014f.ttf
I didn't like the fact that the current best answer is a Python script, and there also appear to be cases of people saying it doesn't work. In addition, none of the current answers seem to make mention of compiling WOFF converters with the zopfli compression algorithm, which is superior to the standard zlib algorithm that other tools use. For these reasons I decided to go the "proper" (i.e. non-script) route and add my own answer in the process.
Note: the compilation process for both of the below utilities is very easy, and made even easier by simply copying and running the snippets of code I've provided below, but they do still require a working compiler. If you haven't compiled software from source before, you may need to setup a compiler environment first. If you're using Cygwin, you can follow the first part of my answer here to set up the MinGW-w64 cross-compiler.
WOFF CLI converter (with ZOPFLI compression)
First, compile and install sfnt2woff1 by pasting all of the following into a terminal and pressing Enter:
git clone https://github.com/bramstein/sfnt2woff-zopfli.git woff &&
cd woff &&
make &&
chmod 755 woff2sfnt-zopfli sfnt2woff-zopfli &&
mv woff2sfnt-zopfli sfnt2woff-zopfli /usr/local/bin &&
rm -rf ../woff
Once the tool has been compiled and installed, convert a TTF or OTF file to WOFF by running:
sfnt2woff-zopfli <inputfile>.ttf
You can also use the -n option to increase the number of iterations the program is run in, increasing compression at the cost of conversion time (the default number of iterations is 15).
To convert all files in the current directory to WOFF:
for i in *; \
do sfnt2woff-zopfli.exe "$i"; \
done
WOFF2 CLI converter (with Brotli compression)
First, compile and install Google's woff2 tools by pasting all of the following into a terminal and pressing Enter:
git clone --recursive https://github.com/google/woff2.git &&
cd woff2 &&
make clean all &&
mv woff2_compress woff2_decompress woff2_info /usr/local/bin &&
rm -rf ../woff2
Once the tool has been compiled and installed, convert a single TTF or OTF file to WOFF2 by running:
woff2_compress.exe <inputfile>.ttf
To convert all files in the current directory to WOFF2:
for i in *; \
do woff2_compress.exe "$i"; \
done
You can even convert a WOFF2 file back to TTF or OTF:
woff2_decompress.exe <inputfile>.woff2
1 Note that SFNT here refers to the SFNT table format that both TTF and OTF font formats are built around.
Ive been looking for this too but, sorry i couldn't find an offline one but i found this:
http://orionevent.comxa.com/woff2otf.html - no longer available
its really good
EDIT: Found a command line tool
https://superuser.com/questions/192146/converting-from-woffweb-open-font-format
I used the python script linked above by
barethon to write an online javascript converter of WOFF to OTF
I realise this thread has been inactive for some time now, but with the help of a few stackoverflow users, I was able to use the above mentioned python script [woff2otf.py by #hanikesn] to create a workflow allowing batch conversion of woff files.
If not for the original poster's use, then for others who come across this thread in search of the same thing, check out my thread for details on how to do this:
Modify Python Script to Batch Convert all "WOFF" Files in Directory
Even if you don't need to batch convert, onlinefontconverter.com produces unreliable results, and everythingfonts.com has a 0.4 MB limit on conversions unless you upgrade to a paid account, and both are needlessly time consuming compared to offline solutions.
Good luck!
EverythingFonts has an online tool that appears to work well.
If you wish to do it offline, following Erik Tjernlund's answer on Super User, you can downloaded the source and compile executables of woff2sfnt and sfnt2woff.
The latest version as of this writing was from 2009/09/09. Unfortunately I've discovered that it doesn't appear to work for all WOFF files, sometimes complaining of a bad signature and sometimes simply giving a broken OTF file.
On a Mac with Homebrew it's simpler than the other mentioned approaches.
.woff2 to .ttf
brew install woff2
woff2_decompress somefont.woff2
This will leave you with somefont.ttf in the same directory.
.woff to .ttf
Converting WOFF (not woff2) is a little trickier, woff2_decompress probably won't handle it. You would first want to convert the .woff file to .woff2, then use the woff2_decompress command to turn that into .ttf file.
There's a brew tap that can be used to install sfnt2woff, which can be used to convert your .woff to .woff2.
brew tap bramstein/webfonttools;
brew install sfnt2woff;
sfnt2woff somefont.woff;
woff2_decompress somefont.woff2

How to view wget source code?

I've gone to this link http://ftp.gnu.org/gnu/wget/
and downloaded different versions, but I have no idea how to actually unpack it.
You don't need to download it. Take a look at their source code repository and read everything using your browser. Here's main.c for example. More details available at How to Access the Wget Source Code Repository.
tar.gz is a common extension for files that have been "tarred" ("tape archive", using the "tar" program), and "gzipped".
Most Linux systems come with these pre-installed, so you can extract the files using something like this:
tar xf wget-1.13.tar.gz
In Windows, use some unzipper program such as 7-Zip, WinZip, or WinAce or use tar from mingw/cygwin.