Was ist der Unterschied zwischen -lcurses und -lncurses wenn C ncurses lib mit Kompilieren?

StackOverflow https://stackoverflow.com/questions/1517756

  •  19-09-2019
  •  | 
  •  

Frage

Ich lerne C und spielen mit der ncurses lib. Ich habe Verweise auf beiden -lcurses gesehen und -lncurses aber ich habe noch keine Unterschiede finden (beide arbeiten bei der Kompilierung).

Schätzen Sie die Hilfe!

War es hilfreich?

Lösung

ncurses ist ein Open-Source-Klon des ursprünglichen Unix Flüche Bibliothek. libcurses. * in der Regel Punkte auf libncurses. * , um die Kompatibilität mit der ursprünglichen Bibliothek, so gäbe es keinen praktischen Unterschied zwischen übereinander verwenden.

Wenn Sie in der Tat mehr als ein 'Flüche-type' Bibliothek installiert ist, -lcurses verbinden würde im Wesentlichen Ihr Programm einen Standard, während -lncurses würde explizit wählen, die ncurses Umsetzung.

Andere Tipps

Auf meiner OpenSUSE 12.3 Box gibt es keine Links zu libcurses mit ncurses installiert. Etwaige C-Programme, die verwenden versuchen, die -lcurses Flagge schlagen fehl, bis Sie die Flagge -lncurses ändern.

OpenSUSE 12.3 > ls -al /usr/lib64/*curses*
-rw-r--r-- 1 root root 2225910 Jan 25  2013 /usr/lib64/libncurses.a
-rw-r--r-- 1 root root  780540 Jan 25  2013 /usr/lib64/libncurses++.a
-rw-r--r-- 1 root root      69 Jan 25  2013 /usr/lib64/libncurses.so
-rw-r--r-- 1 root root  782884 Jan 25  2013 /usr/lib64/libncurses++w.a
-rw-r--r-- 1 root root 2768222 Jan 25  2013 /usr/lib64/libncursesw.a
-rw-r--r-- 1 root root      70 Jan 25  2013 /usr/lib64/libncursesw.so

Die Links fehlen auch auf Fedora 17 jedoch auf Ubuntu 13.04 die Links vorhanden sind:

Ubuntu 13.04 > ls -al /usr/lib/x86_64-linux-gnu/*curses*
lrwxrwxrwx 1 root root     12 Feb  8  2013 /usr/lib/x86_64-linux-gnu/libcurses.a -> libncurses.a
lrwxrwxrwx 1 root root     13 Feb  8  2013 /usr/lib/x86_64-linux-gnu/libcurses.so -> libncurses.so
-rw-r--r-- 1 root root 294180 Feb  8  2013 /usr/lib/x86_64-linux-gnu/libncurses.a
-rw-r--r-- 1 root root 158798 Feb  8  2013 /usr/lib/x86_64-linux-gnu/libncurses++.a
-rw-r--r-- 1 root root     31 Feb  8  2013 /usr/lib/x86_64-linux-gnu/libncurses.so

mit -lcurses So Kompilieren auf OpenSUSE und Fedora scheitern aber die Arbeit an Ubuntu. Kompilieren mit -lncurses wird für alle drei Distributionen arbeiten.

Das Mitnehmen:. Wenn Sie Ihren Code wollen auf verschiedenen Linux-Distributionen kompilieren, sollten Sie -lncurses verwenden

Auf meinem System (Slackware64 13,0), libcurses.so und Freunde sind nur symbolische Links auf die ncurses gleichwertig, so gibt es keinen Unterschied. Die libcurses.so (-lcurses) Name ist wahrscheinlich nur rückwärts zu anderen Systemen, die eine Flüche Implementierung als ncurses andere haben entworfen Code-Kompatibilität zu gewährleisten.

Auf meinem (Fedora 11) PC /usr/lib/libcurses.so enthält: "INPUT (-lncurses)". Ich denke, es bedeutet, dass die zwei Form (-lcurses, -lncurses) entspricht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top