Welcome! Log In Create A New Profile

Advanced

cmake complains g++-7 is not able to compile a simple test program.

Posted by habibie 
cmake complains g++-7 is not able to compile a simple test program.
March 16, 2018 12:21PM
Just install gcc-7 package from buster repo and cmake complains with this error message c++: fatal error: '-c' is not a valid option to the preprocessor as shown below. Has anyone seen this issue?

 CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake:45 (message):
   The C++ compiler

     "/usr/bin/c++"

   is not able to compile a simple test program.

   It fails with the following output:

     Change Dir: /home/local/PEOPLE/debian/works/C++/BMP/bmp-6/build/CMakeFiles/CMakeTmp

     Run Build Command:"/usr/bin/make" "cmTC_3f125/fast"
     /usr/bin/make -f CMakeFiles/cmTC_3f125.dir/build.make CMakeFiles/cmTC_3f125.dir/build
     make[1]: Entering directory '/home/local/PEOPLE/debian/works/C++/BMP/bmp-6/build/CMakeFiles/CMakeTmp'
     Building CXX object CMakeFiles/cmTC_3f125.dir/testCXXCompiler.cxx.o
     /usr/bin/c++     -o CMakeFiles/cmTC_3f125.dir/testCXXCompiler.cxx.o -c
 /home/local/PEOPLE/debian/works/C++/BMP/bmp-6/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
     c++: fatal error: '-c' is not a valid option to the preprocessor
     compilation terminated.
     CMakeFiles/cmTC_3f125.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_3f125.dir/testCXXCompiler.cxx.o' failed
     make[1]: *** [CMakeFiles/cmTC_3f125.dir/testCXXCompiler.cxx.o] Error 1
     make[1]: Leaving directory '/home/local/PEOPLE/debian/works/C++/BMP/bmp-6/build/CMakeFiles/CMakeTmp'
     Makefile:126: recipe for target 'cmTC_3f125/fast' failed
     make: *** [cmTC_3f125/fast] Error 2
Re: cmake complains g++-7 is not able to compile a simple test program.
March 16, 2018 01:13PM
If you run c++ --help is -c listed as an option?
Re: cmake complains g++-7 is not able to compile a simple test program.
March 16, 2018 02:30PM
Hi habibie,

Please keep all gcc-7 in this same topic. No need to create new thread for different gcc-7 problem.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: cmake complains g++-7 is not able to compile a simple test program.
March 17, 2018 06:43AM
renojim Wrote:
-------------------------------------------------------
> If you run c++ --help is -c listed as an option?
>
Yes and indeed -c listed as an option. So, it ought to be a cmake problem?
[root@debian:/root 4%] # c++ --help
Usage: c++ [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase.
  --help                   Display this information.
  --target-help            Display target specific command line options.
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
                           Display specific types of command line options.
  (Use '-v --help' to display command line options of sub-processes).
  --version                Display compiler version information.
  -dumpspecs               Display all of the built in spec strings.
  -dumpversion             Display the version of the compiler.
  -dumpmachine             Display the compiler's target processor.
  -print-search-dirs       Display the directories in the compiler's search path.
  -print-libgcc-file-name  Display the name of the compiler's companion library.
  -print-file-name=<lib>   Display the full path to library <lib>.
  -print-prog-name=<prog>  Display the full path to compiler component <prog>.
  -print-multiarch         Display the target's normalized GNU triplet, used as
                           a component in the library path.
  -print-multi-directory   Display the root directory for versions of libgcc.
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories.
  -print-multi-os-directory Display the relative path to OS libraries.
  -print-sysroot           Display the target libraries directory.
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
  -Wa,<options>            Pass comma-separated <options> on to the assembler.
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.
  -Wl,<options>            Pass comma-separated <options> on to the linker.
  -Xassembler <arg>        Pass <arg> on to the assembler.
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.
  -Xlinker <arg>           Pass <arg> on to the linker.
  -save-temps              Do not delete intermediate files.
  -save-temps=<arg>        Do not delete intermediate files.
  -no-canonical-prefixes   Do not canonicalize paths when building relative
                           prefixes to other gcc components.
  -pipe                    Use pipes rather than intermediate files.
  -time                    Time the execution of each subprocess.
  -specs=<file>            Override built-in specs with the contents of <file>.
  -std=<standard>          Assume that the input sources are for <standard>.
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries.
  -B <directory>           Add <directory> to the compiler's search paths.
  -v                       Display the programs invoked by the compiler.
  -###                     Like -v but options quoted and commands not executed.
  -E                       Preprocess only; do not compile, assemble or link.
  -S                       Compile only; do not assemble or link.
  -c                       Compile and assemble, but do not link.
  -o <file>                Place the output into <file>.
  -pie                     Create a position independent executable.
  -shared                  Create a shared library.
  -x <language>            Specify the language of the following input files.
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension.

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by c++.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-7/README.Bugs>.
[root@debian:/root 5%] #
Re: cmake complains g++-7 is not able to compile a simple test program.
March 17, 2018 01:01PM
Did you also install g++-7 when you installed gcc-7? If not, try to install it the same way you installed gcc-7.

-JT
Re: cmake complains g++-7 is not able to compile a simple test program.
March 17, 2018 11:00PM
renojim Wrote:
-------------------------------------------------------
> Did you also install g++-7 when you installed gcc-7? If not, try to install it the same way you installed gcc-7.
>
> -JT
>
I did forget to install g++-7 package. However, after installing the g++-7 package, the problem remains the same. When I used the -o switch, it seemed to compile a simple hello.c++ file. However, the compiled hello isn't executable, but rather an ASCII text file (see below). This probably means the gcc-7 package I installed from buster repo is useless.
[debian@debian:/home/local/PEOPLE/debian/works/C++ 62%] ~ g++ -c hello.c++
g++: fatal error: ā€˜-cā€™ is not a valid option to the preprocessor
compilation terminated.
[debian@debian:/home/local/PEOPLE/debian/works/C++ 63%] ~ g++ -o hello hello.c++
[debian@debian:/home/local/PEOPLE/debian/works/C++ 64%] ~ ls -la
total 664
drwxr-xr-x  3 debian users   4096 Mar 18 00:55 .
drwxr-xr-x  4 debian users   4096 Mar 18 00:37 ..
drwxr-xr-x 17 debian users   4096 Dec  3 13:50 BMP
-rw-r--r--  1 debian users 661956 Mar 18 00:55 hello
-rw-r--r--  1 debian users    102 Mar 18 00:53 hello.c++
[debian@debian:/home/local/PEOPLE/debian/works/C++ 65%] ~ file hello
hello: C++ source, ASCII text
[debian@debian:/home/local/PEOPLE/debian/works/C++ 66%] ~
Re: cmake complains g++-7 is not able to compile a simple test program.
March 18, 2018 07:30PM
Try running g++ with the -v option. Maybe it will tell us something.
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: