plast-lab / cclyzer

A tool for analyzing LLVM bitcode using Datalog.
MIT License
96 stars 14 forks source link

boost/make_unique.hpp not found #6

Closed 1stl0ve closed 7 years ago

1stl0ve commented 7 years ago

I'm getting an error when I'm trying to make cclyzer. I have installed the boost libraries, but I'm still receiving the following error when I run make:

src/DebugInfoProcessor.cpp:1:33: fatal error: boost/make_unique.hpp: No such file or directory
 #include <boost/make_unique.hpp>

Any suggestions?

Thanks.

gbalats commented 7 years ago

What distro are you running? Have you installed the boost-dev libraries (since the latter is what provides the boost header files)?

1stl0ve commented 7 years ago

I'm running on Ubuntu 14.04 and I installed the boost-dev libraries.

gbalats commented 7 years ago

The make_unique function was introduced at Boost 1.56. So, I assume you have an older version of boost installed. Can you try upgrading it?

1stl0ve commented 7 years ago

I was using boost 1.55. I installed a newer version of boost, which got rid of that error. Now I'm running into problems compiling tools/fact-generator/include/predicate.hpp. It says that there are a number of references (i.e. cclyzer:;Registry<cclyzer::EntityPredicate>::all()) that are undefined.

gbalats commented 7 years ago

I've managed to reproduce the error on Ubuntu 14.04 via docker. This has to do with some explicit instantiations of class cclyzer::Registry failing to generate their respective all() static methods. I'll provide a fix shortly.

gbalats commented 7 years ago

It now compiles cleanly with Ubuntu 14.04 even without Boost 1.56. Please verify that the fix works for you.