I just installed mpi on my linux. Then I write a test program.
make
main.out is generated.
mpirun -n 4 ./main.out
Then error:.
error while open shared libraries libmpi.so.12
I find libmpi.so.12 is just located at /usr/local/lib. I have included this directory in makefile. Why I cannot run main.out?
Related
I got this error while executing mpi processes on remote machines.
mpirun -hosts csews10,csews11 -np 4 ./mpi
But when I run the code on a single machine it works fine.
I have set my PATH of MPI and LD_LIBRARY_PATH as below
export PATH=/users/xxxx/xxxx/installs/mpich/bin:$PATH
export LD_LIBRARY_PATH=/users/xxx/xxx/installs/mpich/lib:$LD_LIBRARY_PATH
Any idea how to solve the issue
I have compiled R 4.1.0 from source against the Intel MKL.
I have put:
source /opt/intel/oneapi/mkl/latest/env/vars.sh intel64
in ~/.bashrc.
If I open a .R file with RStudio, no problem.
But if I open RStudio directly, it is unable to start R correctly, giving me the error:
/usr/lib/rstudio/bin/rsession: error while loading shared libraries: libmkl_gf_lp64.so.1: cannot open shared object file: No such file or directory
Why is that? Doesn't RStudio run ~/.bashrc when started directly?
I am running Fedora 34 Workstation.
When shared libraries are stored in "non-standard locations" we have to tell the dynamic linker about it. That is sometimes done in the calling script (often the case with bundled software, e.g. when you download RStudio which ships with a fair number of local builds of shared libraries) but a more general solution is to tell ldconfig via its configuration.
Older systems used a line per directory in /etc/ld.so.conf. Newer systems generalize this (like many other configurations) with a directory containing small files with entries. So you can create a file named, say, /etc/ld.so.conf.d/local-mkl.conf, and place the directory path in there. If you then run sudo ldconfig all applications will know about it -- including R and RStudio calling R.
My environment is below.
・Operating System and version:windows 10 64bit
・Compiler:C:\msys64\mingw64\bin\g++.exe
・PCL Version:1.9.1
pcl_config.h not found as below error occurred when compiled under above env..
Certainly this header file is not included.
Let me know how to solve it.
PS C:\pcl\pcl\examples\common> g++ -o minmax -I ../../io/include -I ../../common/include .\example_get_max_min_coordinates.cpp
In file included from ../../common/include/pcl/PCLHeader.h:10,
from ../../common/include/pcl/point_cloud.h:47,
from ../../io/include/pcl/io/pcd_io.h:42,
from .\example_get_max_min_coordinates.cpp:2:
../../common/include/pcl/pcl_macros.h:64:10: fatal error: pcl/pcl_config.h: No such file or directory
#include
^~~~~~~~~~~~~~~~~~
compilation terminated.
Short answer
pcl_config.h is generated via pcl_config.h.in by the cmake tool. So it seems that compilation did not finish correctly.
Longer answer
Please make sure you have compiled the relevant modules of PCL (at least pcl-core) before proceeding
You might prefer a pre-built installation from releases or distributed by a package/source manager of your choice
PCL makes heavy use of other libraries and it is best to supply the dependencies (as mentioned below) via CMake or manually via the -I and -l options. If you provide the location of pcl_config.h, the compiler will complain about Eigen next.
The build instructions are available here. TL;DR: After satisfying the dependencies (cmake, c++ compiler, boost, eigen, flann, vtk and other depending on use-case), run the following commands
cd $PCL_SOURCE_DIR
mkdir -p build; cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
Feel free to use any build generator (like Ninja) or change build type to Debug or RelWithDebInfo as per your needs.
I am trying to cross compile Valgrind on my Fedora VM in order to get it to run on a custom embedded Linux device (running Yacto with a Kinetis KL2x MCU w/ ARM Cortex M4 CPU). I have a QT IDE properly configured to cross compile and deploy QT projects to the device. I was wondering what the best route to cross compile a non QT application. I tried making a new project (in QT>New Project>Import Project>Import Existing Project) using an existing project (Valgrind source code # http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2) and i keep getting this error:
17:20:46: Running steps for project valgrind...
17:20:46: Starting: "/usr/bin/make" all
make: *** No rule to make target `all'. Stop.
17:20:46: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project valgrind (kit: ----)
When executing step "Make"
17:20:46: Elapsed time: 00:00.
and I am not sure how to address it. Is it possible to compile Valgrind just using the cross compiler itself (arm-poky-linux-gnueabi-g++)? Am I better off changing the makefile to use the cross compiler instead of gcc and then use scp to send the file to my device(if so which of the many different makefiles do i use?)? Or is there a better way that I am missing? The system doesn't have any package management tools or compilers of its own. Any help/ input will be GREATLY appreciated.
Errors while building recipe after cross compile environment setup:
[----#localhost valgrind]$ source /opt/poky/default/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
[----#localhost valgrind]$ bitbake -c build valgrind_3.12.0.bb
Traceback (most recent call last):
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 553, in <module>
main()
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 535, in main
known_paths = addusersitepackages(known_paths)
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 266, in addusersitepackages
user_site = getusersitepackages()
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 241, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/site.py", line 230, in getuserbase
from sysconfig import get_config_var
File "/opt/poky/1.8.2/sysroots/i686-pokysdk-linux/usr/lib/python2.7/sysconfig.py", line 10, in <module>
'stdlib': '{base}/'+sys.lib+'/python{py_version_short}',
AttributeError: 'module' object has no attribute 'lib'
An example of cross compiling valgrind with Yocto toolchain would be :
# setup workspace
mkdir workspace && cd workspace
# download Yocto sdk
wget http://gumstix-yocto.s3.amazonaws.com/sdk.sh
#Install it to workspace/sdk
./sdk.sh
source sdk/environment-setup-cortexa8hf-neon-poky-linux-gnueabi
# download valgrind tarball
wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2
# extract source
tar jxf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0
# this fix issue with unknown arm architecture (see http://stackoverflow.com/questions/29514706/cross-compiling-valgrind-for-arm)
sed -i -e "s#armv7#arm#g" configure
./configure --host=arm-poky-linux-gnueabi --prefix="$(pwd)/out"
make -j16
make install
Here, the installation directory is out, you can also install to ${SDKTARGETSYSROOT}/usr with --prefix="${SDKTARGETSYSROOT}/usr"
Check this link for the basic example of cross compile with Yocto SDK
i think the easiest way is to build it in your yocto build environment
(source poky/oe_init_build_env)
and the build valgrind with
bitbake -c build valgrind
then look in the build folder tmp/work/"plattform"/valgrind/"version"/image/ for the files
I'm trying to install the Apache web server from source code to a Fedora 14 VM. I've run ./configure multiple times already, and can see Makefile.in and .win but no 'Makefile'. When I run the 'make' command, I get the following error:
make: *** No targets specified and no makefile found. Stop.
Can someone please tell me what's keeping it from generating a Makefile?