възможно ли е да има C/C++ GUI приложение в linux bare-bone сървър?

Много съм разочарован от моя училищен Linux сървър, когато пиша домашните на него. Причината е: домашното ми изисква да направя GUI приложение.

Целият инструмент, който имам е: - ssh от моята локална машина към училищна машина - gcc/g++ в моята училищна машина

От седмица мислих и пробвах различни решения. Все още не мога да разбера как да внеса GUI в моето приложение.

Ето някои решения, които опитах: - Инсталирайте някаква графична библиотека (sdl,ncurses...), но училищният компютър не позволява инсталирането, защото не съм root потребител - Опитайте се да компилирате с /X11/, за да създадете X-GUI приложение . След това го стартирайте през ssh (тунелиране). Това също не работи, защото училищният компютър няма файл със заглавки, разположен в X11.

Какво мога да направя? Някой има ли предложение? Ще ви благодаря милиони пъти, ако можете да помогнете за решение.

благодаря ти много цубаса


person Community    schedule 09.12.2009    source източник


Отговори (5)


Трябва да е възможно да инсталирате повечето неща, като ncurses или дори X11, в потребителското пространство (във вашата домашна директория), ако ги инсталирате от източника. С Gnu пакет просто използвате --prefix= като аргумент за конфигуриране, като този:

./configure --prefix=/name/of/directory/to/install/into 

За другите пакети не съм сигурен.

person Community    schedule 09.12.2009
comment
Опитах това, но има грешка: apt-get install ncurses E: Не може да се отвори заключващият файл /var/lib/dpkg/lock - отворен (13 Отказано разрешение) E: Не може да се заключи административната директория (/var/lib/dpkg/ ), root ли си? - person ; 09.12.2009
comment
@tsubasa: не можете да използвате apt-get, тъй като не сте root, трябва да изтеглите изходния пакет, т.е. .tar.gz .tar.bz2 - person RageZ; 09.12.2009
comment
Вероятно ще трябва да изградите ncurses от източника, за да го инсталирате във вашата домашна директория; повечето мениджъри на пакети изискват root за достъп до техните хранилища за метаданни. - person Joe; 09.12.2009
comment
как мога да създам ncurses от източник, както казахте? Опитах се да използвам ./configure, работи добре. но когато правите „make install“, отново има проблем с правата на root. И така, как мога да създам ncurse от източника? Моля помогнете. - person ; 09.12.2009
comment
@tsubasa -- когато правите ./configure, направете ./configure --help и трябва да имате възможността да подадете различен път за инсталиране (който ще бъде използван по-късно за „извършване на инсталиране“) - person Joe; 09.12.2009
comment
@tsubasa: използвайте --prefix=/name/of/directory/to/install/into - person ; 09.12.2009
comment
По-специално, --prefix=$HOME за инсталиране във вашата домашна директория. - person caf; 09.12.2009
comment
Никога не бих инсталирал в домашната си директория. - person ; 09.12.2009
comment
Kinopiko: Тогава никога не сте използвали истинска многопотребителска система. Обикновено това е единственото място, на което можете да пишете, освен /tmp и /var/tmp. - person caf; 09.12.2009

Без GUI библиотека, към която да се свържете, няма да можете да разработите C/C++ приложение на този сървър. Струва ми се, че имате няколко възможности:

1) Разработете това GUI приложение някъде другаде. Ако трябва да е в Linux и сте потребител на Windows/Mac, можете да инсталирате Ubuntu (или друга дистрибуция на Linux) на виртуална машина и да получите пълнофункционална среда.

2) Свържете се с Linux администратора, за да обясните домашната работа и да ги убедите да инсталират GUI пакет за вас. (Може да помогне вашият професор също да се свърже с администратора на Linux) (Ако не знаете кой е администраторът на Linux, опитайте да изпратите имейл на root@linuxbox

3) Изкривете правилата за това какво е "GUI" среда. Например, може ли вашето C/C++ приложение да извежда HTML файлове за подобно на GUI изживяване чрез уеб браузър?

4) Опитайте се да инсталирате някакъв GUI пакет във вашия акаунт на сървъра. Това вероятно ще се провали, освен ако не сте много, много добри в администрирането на linux кутия и преди сте правили ръчно пакети.

person Dan    schedule 09.12.2009

Може да го направи с ncurses

person EMiller    schedule 09.12.2009

Може би бихте могли да се откажете от училищния сървър и да използвате Virtualbox, за да стартирате Linux VM локално на вашата машина и да разработите на това . Безплатно е.

person MadCoder    schedule 09.12.2009

От файла "INSTALL" в архива на източника на ncurses:

The package gets installed beneath the --prefix directory as follows:

In $(prefix)/bin:          tic, infocmp, captoinfo, tset,
          reset, clear, tput, toe
In $(prefix)/lib:          libncurses*.* libcurses.a
In $(prefix)/share/terminfo: compiled terminal descriptions
In $(prefix)/include:      C header files
Under $(prefix)/man:       the manual pages

Note that the configure script attempts to locate previous

инсталиране на ncurses и ще зададе префикса по подразбиране според това къде намира заглавките на ncurses.

Do not use commands such as

  make install prefix=XXX

to change the prefix after configuration, since the prefix value

се използва за някои абсолютни имена на пътища като TERMINFO. Вместо това направете това

  make install DESTDIR=XXX

Така че бих препоръчал да използвате "make install DESTDIR=XXX", където XXX е местоположението, където имате разрешения за запис.

HTH

person Community    schedule 09.12.2009