Menu

#16 make command failing with error message

closed-accepted
2016-03-02
2016-03-01
RonCam
No

Please take a look at what's appearing in terminal when I enter 'make' and advise:

~/Downloads/Editors/hexcompare-1.0.4/hexcompare-1.0.4 > sudo make
[sudo] password for ron: 
cc -O3 -Wall -Wextra -pedantic -Wformat-security -std=gnu89 -o hexcompare main.c gui.c -lncurses
In file included from main.c:18:0:
gui.h:19:20: fatal error: curses.h: No such file or directory
 #include <curses.h>
                    ^
compilation terminated.
In file included from gui.c:16:0:
gui.h:19:20: fatal error: curses.h: No such file or directory
 #include <curses.h>
                    ^
compilation terminated.
make: *** [hexcompare] Error 1

This is what's in the directory. Note, I removed file with .dos extension, thinking it was confusing 'make':

~/Downloads/Editors/hexcompare-1.0.4/hexcompare-1.0.4 > ls
general.h  gui.c  gui.h  main.c  Makefile  README

Any advice will be appreciated. This is my first use of 'make' so my apologies if it's something obvious.
Thanks!


System Information:
Linux Mint, Rosa
Anything else needed to troubleshoot -- please ask.

Discussion

  • Mateusz Viste

    Mateusz Viste - 2016-03-01

    Hello RonCam, this is not related to hexcompare itself, but rather to your environment. From your output I see that you simply miss the curses header. "Curses" is a library required by HexCompare for all its terminal handling. I don't know what Linux distribution you use, but chances are that it comes with some kind of package manager that should allow you to install a package named "ncurses-dev" (or something similar), which will expose a curses header. Then, the compilation should go fine. Let us know :)

     
  • RonCam

    RonCam - 2016-03-01

    Hi Mateurs, I have Linux Mint, Rosa -- a derivative of Ubuntu.
    So far the closest I can find is libncurses5-dev, in developer's libraries for ncurses. I will look for a closer match, but if not found, will load this and see what happens.

    OK, just saw your note about the library that looks good. Will proceed now.

     

    Last edit: RonCam 2016-03-01
  • Mateusz Viste

    Mateusz Viste - 2016-03-01

    libncurses5-dev sounds perfect - I'm pretty sure this will be it.
    apt-get install libncurses5-dev

     
  • RonCam

    RonCam - 2016-03-01

    OK, very good. The one without the '-dev' was preinstalled. Now both are.

    ~/Downloads/Editors/hexcompare-1.0.4/hexcompare-1.0.4 > ls
    general.h  gui.c  gui.h  **hexcompare**  main.c  Makefile  README
    

    :-) Many thanks! Hexcompare now appears in the directory.
    I gather from your docs, that you just run it from anywhere, in terminal.
    Will post again if there's a need.

     
  • Mateusz Viste

    Mateusz Viste - 2016-03-01
    • status: open --> closed-accepted
    • assigned_to: Mateusz Viste
     
  • RonCam

    RonCam - 2016-03-01

    After a bit of searching, I'll place it into usr (Unix system resources) under local (locally compiled utility). If you think this unwise, please let me know. As I mentioned, this was my first user of 'make'. Thanks again for the assistance!

     
  • Mateusz Viste

    Mateusz Viste - 2016-03-02

    technically it doesn't really matter where you put your executable, as long as it is somewhere that is part of your $PATH. myself, I like storing my custom-built executables in $HOME/bin/ so it never messes up with the system's package manager (and I append $HOME/bin to my $PATH of course). but ultimately it's merely a question of personal feeling and habit, so your choice is as good as any other :)

     

Log in to post a comment.

MongoDB Logo MongoDB