I am running Ubuntu 12.04 and I\'m currently working on a project involving C, OpenGL, a teapot and input methods.
The problem started when I decided to have arrow k
Try installing the ncurses-static
package too, if you have only the ncurses-devel
package installed in your Ubuntu OS.
If that solves your problem, plus if you add @Joachim's compiling instructions, you are off to a great start.
gcc main.o -o main -L/location/of/ncurses -lm -lGL -lGLU -lglut -lncurses
The linker can't find your shared library in it's search path. If you add the directory where your shared lib is to the LD_LIBRARY_PATH
environment variable the linker should find it and be able to link against it. In that case you could omit the -L
option to gcc:
gcc main.o -o main -lm -lGL -lGLU -lglut -lncurses
And it should compile fine.
EDIT:
Good to know that apt-get install libncurses5-dev
fixes your problem.
FYI.
The LD_LIBRARY_PATH
environment variable contains a colon separated list of paths that the linker uses to resolve library dependencies at run time. These paths will be given priority over the standard library paths /lib
and /usr/lib
. The standard paths will still be searched, but only after the list of paths in LD_LIBRARY_PATH
has been exhausted.
The best way to use LD_LIBRARY_PATH
is to set it on the command line or script immediately before executing the program. This way you can keep the new LD_LIBRARY_PATH
isolated from the rest of your system i.e. local to the current running running instance of shell.
$ export LD_LIBRARY_PATH="/path/to/libncurses/library/directory/:$LD_LIBRARY_PATH"
$ gcc main.o -o main -lm -lGL -lGLU -lglut -lncurses