0

So, I have this in a CMakeLists.txt:

cmake_minimum_required(VERSION 3.19) project(MyHello LANGUAGES CXX) find_package(deal.II 9.4.2 CONFIG REQUIRED) find_package(Boost REQUIRED) find_package(TBB CONFIG REQUIRED) add_executable(dealII_test dealII_test.cpp) target_link_libraries(dealII_test PUBLIC TBB::tbb PUBLIC TBB::tbbmalloc PUBLIC TBB::tbbmalloc_proxy PRIVATE Boost::boost PRIVATE deal_II ) 

I'm getting the following error in Ninja:

ninja: error: '/lib', needed by 'dealII_test.exe', missing and no known rule to make it 

If I comment out the PRIVATE deal_II part, I get more mundane errors of Deal.II header files not being found. Hence, I'm sure there is something wrong with the deall_II part in the taget_link_libraries() call. I suppose the /lib in the error should be a complete path in wherever it was defined.

Trouble is I can't locate the origin of the misdefinition that causes the error. So, I'd like to know how to debug or print the contents of whatever is inside deal_II part.

I tried the most-voted answer of Displaying a target's list of linked libraries in cmake but I only get what I already know by just reading the CMake script. I'd like some kind of full list of DLL/SO/LIB files being linked against the executable not the high-level dependency names already listed in CMakeLists.txt.

I'm building with Conan, so I'm better off trying to debug deal_II contents via the recipe and/or the CMakeLists.txt files involved.

1
  • where did you get the conan recipe for deal? Commented 5 hours ago

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.