-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
...\boost\preprocessor\control\iif.hpp|25|error: 'BOOST_PP_IIF_0' was not declared in this scope| #256
Comments
This looks like a boost.preprocessor issue (which I can not reproduce by the way). Here they recommend to define BOOST_PP_VARIADICS to 1. Can you try that? |
Thank you for the response.
to a setup.hpp file (located in ...\boost\boost\log\utility\setup.hpp), but it didn't work. I downloaded and extracted boost_1_82_0.7z for windows from boost.org, and amgcl from github.com/ddemidov/amgcl, so I am surprised why this problem doesn't reproduce for you. Any other hint would be highly appreciated |
How did you create the project? Did you use cmake CMakeLists.txt provided with the project? If not, I recommend to use it and see if that solves your problem. Or at least look at the command line options that are set there for msvc compiler: Lines 83 to 92 in 276a649
|
Thank you for your important remark |
Hi, |
It looks like you ran cmake directly in the examples folder, and not at the top level of amgcl, as you should. If you did that, then cmake would create a project for building amgcl.lib, and it would also setup the |
I am trying to exactly describe the issue:
maybe this is the source of error but currently I don't know how to make it recognize the boost, cuda and mpi. At the end it says that the build files have been written in ../amgcl-master/build.
Maybe I should download CUDA, and OpenMPI and devise the cmake to recognize boost, cuda, and mpi. |
The only thing that is required and was not found is Boost: it is used in many examples (which are not built in case boost is not found), so you should try to tell cmake where it is located:
|
Thanks a lot. By executing the command you wrote, (after building the Boost by two commands for building boost libraries i.e.: "bootstrap" and ".\b2" commands; which I didn't do previously), now it finds Boost in cmd, but when I open the amgcl project, in the stage of "target info extraction" it says that "Could NOT find Boost". As you said this would be a main problem. The VS call-stack shows that the problem root is at line 31 of CMakeLists.txt in amgcl root folder (i.e. find-package(boost)...), then at line 1618 of FindBoost.cmake (Boost_MISSING_DEPENDENCIES...), and finally at line 959 of FindBoost.cmake (Boost_COMPONENT_DEPENDENCIES...). |
Do you use x64 architecture in VS? In that case I think you need to specify --address-model=64, and correct toolset when building boost (I don't have a windows machine, so I am not sure if this still applies): https://stackoverflow.com/questions/43946538/how-to-build-boost-1-64-in-64-bits. |
Yes I use x64-debug configuration in VS. I am trying what you just said. |
Hi
When I compile the amgcl example "cpr.cpp" in code:blocks IDE, it gives the following error:
...\boost\preprocessor\control\iif.hpp|25|error: 'BOOST_PP_IIF_0' was not declared in this scope|
I tried to compile this example in several IDEs and operating systems, but it didn't resolve. Any help would be really appreciated.
The text was updated successfully, but these errors were encountered: