ArrayFire is missing LAPACK - but I have it - opencl

I just downloaded the latest release of ArrayFire (3.3.1), and am trying to build it. I'm stuck at cmake . though. I installed a bunch of missing libraries, reran it, and now I get:
-- Could NOT find LAPACK (missing: LAPACK_LIBRARIES)
CMake Warning at src/backend/opencl/CMakeLists.txt:38 (MESSAGE):
LAPACK not found. Functionality will be disabled
and
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GLEWmxd_LIBRARY
linked by target "afcpu" in directory /home/joeuser/src/arrayfire-full-3.3.1/src/backend/cpu
linked by target "afcuda" in directory /home/joeuser/src/arrayfire-full-3.3.1/src/backend/cuda
linked by target "afopencl" in directory /home/joeuser/src/arrayfire-full-3.3.1/src/backend/opencl
I have installed lapack, and it's at /usr/lib/liblapack.so (that's an alternatives symlink, but it's not broken). Also installed lapacke.

ArrayFire requires the LAPACKE library (On Ubuntu, liblapacke-dev, and the graphics part requires GLEW-MX (on Ubuntu, libglewmx-dev).

Related

"Warning: Cannot find GCC installation directory. g++.exe must be in the path." when using windeployqt

When I run windeployqt to deploy my application, I get the following warning:
Warning: Cannot find GCC installation directory. g++.exe must be in the path.
Even though I have set the Path environment variable to include the Qt's MinGW binary files located at C:\Qt\Qt5.12.0\5.12.0\mingw73_64\bin. As a result, I can see that the compiler runtime libraries are not included in the deployed package, even when I explicitly use --compiler-runtime flag. I am not sure what step I am missing?
The problem is that you should also install MinGW compiler when installing the Qt (to do so, check "MinGW compiler" under the "tools" section in installation wizard) and then add its path to the Path environment variable:
C:\Qt\Qt5.12.0\Tools\mingw730_64\bin
That's where all the related compiler binaries, including g++, are located. Also, don't forget that you may need to reboot the computer after setting the path.

OMNET++ 5.1.1 and Qt

I am installing OMNET++ 5.1.1. However, during the installation, it is reported that:
configure: error: Cannot build Qt apps, probably due to missing or too old Qt packages. Make sure Qt development packages are installed and newer than Qt 5.4. You can disable Qtenv by setting the WITH_QTENV variable to "no" in configure.user.
Then I download and install the Qt from https://www.qt.io/download/. But it still report the same problem. How can I solve this problem ? Thank you.
I assume you're running some kind of GNU/Linux, because on Windows and macOS, the bundled Qt libraries should just work.
Try installing the Qt5 development packages using your distro's native package manager, then they should be detected.
If you can't, or they are too old, take a look in the configure.user file, and adjust the value of the QT_PATH variable according to the instructions there.
EDIT:
Since the OS was clarified: On Windows, you don't need to download Qt, or any other library separately. They are all bundled with the OMNeT++ distribution, and should work fine.
Just make sure you always use the included mingwenv shell to install and run OMNeT++. In it, the environment variables are set up as necessary.
If you are installing OMNET++ on windows make sure you extract the zip file to a folder other than "Program Files" and deactivate your antivirus during the installation process.

Compiling third party libraries with Qt

I've been using OpenCV and Marble libraries compiled and linked with Qt. Every time I do it I have problems running cmake to make these libraries. it seems paths in the qt cmake files to other qt cmake files are incorrect. I get errors like:
CMake Error at CMakeLists.txt:67 (find_package):
By not providing "FindQt5DBus.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5DBus", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5DBus" with any
of the following names:
Qt5DBusConfig.cmake
qt5dbus-config.cmake
Add the installation prefix of "Qt5DBus" to CMAKE_PREFIX_PATH or set
"Qt5DBus_DIR" to a directory containing one of the above files. If
"Qt5DBus" provides a separate development package or SDK, be sure it has
been installed.
I can fix this in Ubuntu by running
sudo apt-get install qt5-default
This is fine in Ubuntu, but now I am trying to compile these libraries on mac and windows now. Anyone know a way to get a Qt with all of these paths already correct? tried the installer on windows and mac, and brew on mac. I don't really have time to play with fixing each one of these errors one by one
At least Qt 5.5 on Windows (using the Qt installer) should work out of the box. It has DBus included. Which Qt version are you using currently?

QtWebKit gstreamer1.0 not found

I want to compile PhantomJS with gstreamer. I downloaded the source code and started the build process with
./build.sh --qmake-args WEBKIT_CONFIG+='use_gstreamer'
I get the following Error
Project ERROR: gstreamer-1.0 development package not found
I have an debian 8.0 system with installed libgstreamer1.0 and glib2.0 (installed with apt-get).
Can someone help me?
If you haven't installed them, you'll need the development packages as well which should be something like libgstreamer(X.X.X)-dev, where X.X.X is whichever version of gstreamer you have installed. The development package has the necessary header files required for compilation.
you may need to modify the build script to add "{GStreamerInstallDir}/1.0/{architecture}/lib/pkgconfig" to the CMAKE_MODULE_PATH configuration so cmake can find the package.
Not sure how to do this in your environment as I build on a windows OS where I just specify this using an environment variable from a wrapping batch script.

Compiling Fortran code for R package under Windows: Undefined reference to REXIT, RWARN, RCHKUSR

I am working on an R package containing Fortran source files. The structure of the Fortran code is rather complex, with many dependencies, therefore I have a Makefile in the src folder for the compilation of the shared library.
So far I have been compiling this package on my machine running Ubuntu 14.04, without any problems. I am now trying to compile it on Windows using Rtools, and I am running into a problem when linking the objects to produce the shared library. More precisely, the linker does not find the functions REXIT, RWARN and RCHKUSR, as I get the following error messages:
undefined reference to `rchkusr_'
undefined reference to `rexit_'
undefined reference to `rwarn_'
These functions are supposed to be in the shared library R.dll (libR.so under Linux). I checked this library with Dependencies Walker and I could find these functions. I have tried to link with -I C:/Program\ Files/R/R-3.1.1/bin/i386/R.dll to make explicit the reference to the shared library. I have tried to recompile with -fno-underscoring to make sure the underscores were not the problem. Nothing helped.
Any ideas where the problem could come from? Any suggestions would be more than welcome!
Under Linux I did not have to do anything special, the linker found the functions without specifying anything in the Makefile.
I am using R version 3.1.1 and Rtools version 3.1.
Many thanks for your help.
After fiddling with the Makefile, I finally found the solution to my problem: The flags I was trying to pass to the linker were wrong. Only the path of the shared library R.dll should be specified, using -L, and the name of the library should be specified using the flag -lR at the end of the command. In short, I specified
gfortran -shared *.o -o myLib.dll -L C:/Program\ Files/R/R-3.1.1/bin/i386 -lR
to create myLib.dll and it worked! I guess I got confused because under Linux there is no need to specify anything, the linker finds the shared library on its own.
Probably not the best and most portable solution I can get (I now have two Makefiles to deal with, Makefile for Linux and Makefile.win for Windows...), but good enough for now.

Resources