Skip to content

Building issue: lack of -std=c++11 flag on src/CMakeLists.txt #24

@ItaloMunozAutentia

Description

@ItaloMunozAutentia

Building on Ubuntu 16.04, produces a warning and an error:

Warning:

Scanning dependencies of target minizip
[ 17%] Building C object external/minizip/CMakeFiles/minizip.dir/ioapi.c.o
[ 20%] Building C object external/minizip/CMakeFiles/minizip.dir/unzip.c.o
[ 22%] Building C object external/minizip/CMakeFiles/minizip.dir/zip.c.o
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/external/minizip/zip.c: In function ‘zipOpenNewFileInZip4_64’:
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/external/minizip/zip.c:1248:28: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
         zi->ci.pcrc_32_tab = get_crc_table();
                            ^

Error:

Scanning dependencies of target updater
[ 75%] Building CXX object src/CMakeFiles/updater.dir/main.cpp.o
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/src/main.cpp: In function ‘int main(int, char**)’:
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/src/main.cpp:153:3: error: ‘unique_ptr’ is not a member of ‘std’
   std::unique_ptr<UpdateDialog> dialog(createUpdateDialog());
   ^
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/src/main.cpp:153:31: error: expected primary-expression before ‘>’ token
   std::unique_ptr<UpdateDialog> dialog(createUpdateDialog());
                               ^
/home/imunoz/Documentos/Dev/AutentiaX/Agente/third-party-libs/Update-Installer/src/main.cpp:153:60: error: ‘dialog’ was not declared in this scope
   std::unique_ptr<UpdateDialog> dialog(createUpdateDialog());
                                                            ^
src/CMakeFiles/updater.dir/build.make:62: fallo en las instrucciones para el objetivo 'src/CMakeFiles/updater.dir/main.cpp.o'
make[2]: *** [src/CMakeFiles/updater.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:255: fallo en las instrucciones para el objetivo 'src/CMakeFiles/updater.dir/all'
make[1]: *** [src/CMakeFiles/updater.dir/all] Error 2
Makefile:94: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2

The error triggering everything else is: "error: ‘unique_ptr’ is not a member of ‘std’" but main.cpp includes <memory>.

It can be fixed by editing src/CMakeLists.txt, line 7 from:

if (UNIX)
	add_definitions(-Wall -Werror -Wconversion)
endif()

to:

if (UNIX)
	add_definitions(-Wall -Werror -Wconversion -std=c++11)
endif()

and to fix the warning, edit external/minizip/zip.c line 1248
from:
zi->ci.pcrc_32_tab = get_crc_table();
to:
zi->ci.pcrc_32_tab = (const unsigned long*)(get_crc_table());

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions