vendredi 3 juin 2016

cmake will not compile to C++ 11 standard

I'm new to C++ and have been struggling with compiling/making/linking/building/whatever, lets see if somebody can help me out. I did some searches and found other people with similar problems but I tried their solutions with no luck, so here goes:

A simple c++ program that uses C++ 11 functionality such as uniform initialization, threads, "to_string", etc... generates errors that "xxx" was not declared in the scope. Specifically right now I'd like to use "to_string", and using it in the std namespace or specifically "std::to_string" creates the error "to_string" is not a member of STD. So clearly it's not compiling with C++ 11.

So here's my make file:

#####################################
cmake_minimum_required (VERSION 2.8)
project (raspicam_test)
find_package(raspicam REQUIRED)
find_package(OpenCV)

IF  ( OpenCV_FOUND AND raspicam_CV_FOUND)
        MESSAGE(STATUS "COMPILING OPENCV TESTS")
        add_executable (main main.cpp)
        #target_compile_features(main PRIVATE cxx_range_for)
        set_property(TARGET main PROPERTY CXX_STANDARD 11)
        target_link_libraries (main ${raspicam_CV_LIBS})
ELSE()
        MESSAGE(FATAL_ERROR "OPENCV NOT FOUND IN YOUR SYSTEM")
ENDIF()
#####################################

As you can see I'm playing around with OpenCV on a raspberry pi. But without the C++ 11 functions the program compiles and runs no issues. But I would like to add threads and other goodies from C++11. I added the line "set_property(TARGET main PROPERTY CXX_STANDARD_REQUIRED 11)" according to the CMAKE documentation:

http://ift.tt/1Umo3BO

And it made no difference in the errors generated. I did it first without the _REQUIRED and then with it. I also tried target_compile_features() instead but CMAKE returned with "unknown CMAKE command".

Other details: -Compiling on a raspberry pi 3 running debian jessie -CXX compiler is GNU 4.9.2 -CMAKE 3.0.2

Aucun commentaire:

Enregistrer un commentaire