No such file directory for 3rd party software

I am trying to use the KiFMM3D software with my code. I am compiling code in C++ and everything looks fine but I am getting an "no such file or directory" error regarding the KiFMM3d code. The exact error message is :

1
2
3
4
5
6
In file included from /ws/larryburns/cmake/ME/sc/T/../../inc/KIFMM3D/fmm3d/fmm3d.hpp:21:0,
    from /ws/larryburns/cmake/ME/sc/T/../../inc/P/KiFmmWrapper.h:5,
    ...
    from /ws/larryburns/cmake/ME/sc/T/PotGeoP.cpp:10:
    /ws/larryburns/cmake/ME/sc/T/../../inc/KIFMM3D/fmm3d/knlmat3d.hpp:21:28: fatal error: common/vec3t.hpp: No such file or directory
    compilation terminated.


The common/vec3t.hpp file is in both /ws/larryburns/cmake/ME/sc/KIFMM3D/common and /ws/guy/soft/KIFMM3D/common

In the KiFmmWrapper.h file, there is #include "KIFMM3D/fmm3d/fmm3d.hpp" .

I use `make` and `CMakeLists`, so I can't just type `g++ -Ic:/prog/boost1461 myfile.cpp` to deal with this issue.

In my directory ` /ws/larryburns/cmake/ME/Build/sc`, I have `CMakeLists.txt` as

1
2
3
ADD_SUBDIRECTORY (Ut)
    ADD_SUBDIRECTORY (ASp)
    ..


I also have a `CMakeLists` in /ws/larryburns/cmake/ME/sc/ME/CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
INCLUDE_DIRECTORIES(../../inc/KIFMM3D)
INCLUDE_DIRECTORIES(../../inc/KIFMM3D/common)
INCLUDE_DIRECTORIES(../../../../../guy/soft/kifmm3d)
INCLUDE_DIRECTORIES(../../../../../guy/soft/kifmm3d/common)
 
if(USE_MPI_KIFMM)
ADD_DEFINITIONS(-DWITH_MPI_KIFMM)
INCLUDE_DIRECTORIES(../../inc/KIFMM3D/fmm3d_mpi)
else(USE_MPI_KIFMM)
ADD_DEFINITIONS(-UWITH_MPI_KIFMM)
INCLUDE_DIRECTORIES(../../inc/KIFMM3D/fmm3d)
endif(USE_MPI_KIFMM) 


whereas the KIFMM software seems to be installed in /ws/guy/soft/KIFMM3D. The cpp files for that 3rd-party software were also copied into the 3rdparty folder in /ws/larryburns/cmake/ME/sc/KIFMM3D

How can I fix this? Do I need to contact the makers of KiFMM3D?
Last edited on
so no one can help?
If you look at Line 5 of that first error you'll see that the directory doesn't match the one that you are saying "vec3t.hpp" is located in. The "sc/T/../../in" parts are missing, although the ellipses are place holders, this does suggest that you have the header file that it wants in a different directory then it expects.

It's been my experience that when people make CMake files, they sort of aim for the middle, or sometimes just their own specific setup, and hope that either the user will figure it out or that someone knowledgeable will throw up a "How-To fix this" on the subject. So don't be surprised when stuff like this doesn't work OOB.
Topic archived. No new replies allowed.