Автор Тема: C Runtime library инсталация  (Прочетена 3670 пъти)

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
C Runtime library инсталация
« -: Jul 28, 2010, 13:17 »
Снощи стоях до късно и така и не успях да компилирам един анг-бг речник (апликейшън).
Дава грешка че няма инсталирани X11 библиотеки и С функцията getenv() която е в stdlib.h не я разпознава.
Последното е явно липса и на CRT библиотеките и хедърите.
Въпроса ми е как да инсталирам тези библиотеки?

Сложих IDE-то на Qt с идеята че ще си инсталира CRT библиотеките, ама пак ми дава че не разпознава getenv().
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: C Runtime library инсталация
« Отговор #1 -: Jul 28, 2010, 13:30 »
Речника в някакво readme или подобно може да има описани нужните за него библиотеки за по-лесно. Но дори и да го няма този списък, компилираш, то ти плюе грешка за липсваща библиотека, инсталираш нейния dev пакет (това са точно хедърите й) и пробваш пак да компилираш и т.н.
Активен

task_struct

  • Напреднали
  • *****
  • Публикации: 576
  • Distribution: Kubuntu 14.04
  • Window Manager: KDE 4.13
    • Профил
Re: C Runtime library инсталация
« Отговор #2 -: Jul 28, 2010, 13:40 »
Здравей,

Имаш ли инсталиран build-essential пакета? Той би трябвало да ти предостави хедърите за стандартната С библиотека. Ако приложението е писано на Qt, инсталирай си неговите dev пакети. Като зависимост те ще инсталират и X11 пакетите :) Може ли все пак да дадеш какво ти изписва? Така ще ни е по-лесно да предложим решение :)
Активен

"Minds are like parachutes. They only function when they are open." - James Dewar

irc.freenode.net  / #linux-bg

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: C Runtime library инсталация
« Отговор #3 -: Jul 28, 2010, 13:47 »
Междудругото речника не ме притеснява.
Притеснява ме че нямам необходимите библиотеки за компилиране.
В readme-то няма описани библиотеките.
За X11 server просто ми казва че нямам необходимите библиотеки и спира.
За getenv() казва че не я разпознава - пак не дава коя библиотека точно да инсталирам.

Сложих Ubuntu уж за по-голямо удобство и наистина разпозна и конфигурира хардуера сам.
За обикновен потребител има всичко необходимо, но за компилиране и девелопмент ми е объркано.

Преди бях опитвал със SUSE. Там беше по трудно всичко, но в крайна сметка ставаше.
Там помня че наистина ми казваше какво точно липсва. Макар че нама логика защото компайл системата от тулчета
би трябвало да е почти същата, макар и доста различна дистрибуция.

Също така ми е трудно да се ориентирам от името на библиотеката за dev пакета.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: C Runtime library инсталация
« Отговор #4 -: Jul 28, 2010, 13:51 »
Здравей

В момента съм на работа и съм на Windows.
build-essential ще го проверя вкъщи довечера и пак ще пиша.

мерси.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
Re: C Runtime library инсталация
« Отговор #5 -: Jul 28, 2010, 13:53 »
Съмнява ме че си пропуснал пакети за разработчици. Нещо като x11-dev.
Активен

mobilio - професионални мобилни приложения

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: C Runtime library инсталация
« Отговор #6 -: Jul 28, 2010, 20:07 »
Нещата донякъде се оправиха, но още не мога да билдна този речник: kbgoffice-1.8.

X11 библиотеките вече са налични, но още ми дава следната грешка при компайл:

Цитат
Good news! Look that you have all needed packages installed
Type 'make' (or 'gmake') to compile the program
After that type 'make install' to install the program and data
For 'make install' you must be root (su)
At the end in a X terminal window type 'kbgoffice' to run the program

stefan@ubuntu:~/Downloads/kbgoffice-1.8$ make
Making all in src
make[1]: Entering directory `/home/stefan/Downloads/kbgoffice-1.8/src'
g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"bgoffice\" -DVERSION=\"1.8\" -DSTDC_HEADERS=1  -I. -I.  -I/usr/include/qt3   -Wall  -O2 -c main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:64: error: ‘getenv’ was not declared in this scope
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/home/stefan/Downloads/kbgoffice-1.8/src'
make: *** [all-recursive] Error 1

Мисля, че има грешка в сорса, защото щеше да каже, че не може да намери stdlib.h в който е декларирана getenv().
Някой от вас компилирал ли е този речник (по-точно тази версия)?
« Последна редакция: Jul 28, 2010, 20:11 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: C Runtime library инсталация
« Отговор #7 -: Jul 28, 2010, 22:54 »
kbgoffice е доста стар проект и беше за qt3, не знам дали има нова версия (много ме съмнява да има). Друг проблем е, че сменяха синтаксиса на някой функции на gcc от версия 3 до версия 4 и се омазаха още повече нещата.
Ако искаш речник има нов spellbook ползва същия речник на kbgoffice но е писан на java в сайта можеш да откриеш линк за свалянето.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: C Runtime library инсталация
« Отговор #8 -: Jul 29, 2010, 12:12 »
Чудно какво ли ще стане ако замениш в main.cpp където има getenv(..) с std::getenv(...)
Активен

"Knowledge is power" - France is Bacon

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: C Runtime library инсталация
« Отговор #9 -: Jul 29, 2010, 13:33 »
Грешка!

getenv() е от CRT и я няма в STL.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Re: C Runtime library инсталация
« Отговор #10 -: Jul 29, 2010, 18:04 »
clovenhoof, std:: не е запазена територия на STL. Например string не е част от STL, но никой нормален компилатор няма да те пусне да го използваш без std:: отпред или без изрично включване на namespace-a. И std::getenv е напълно коректно ако инклудваш стандартната C библиотека с #include <cstdlib>.

А по темата - вместо да се мъчиш да компилираш kbgoffice си инсталирай gbgoffice с apt-get или от synaptic.
Активен

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: C Runtime library инсталация
« Отговор #11 -: Jul 29, 2010, 22:56 »
Цитат
И std::getenv е напълно коректно ако инклудваш стандартната C библиотека с #include <cstdlib>.

1. Тук си прав, макар че <cstdlib> идва с STL и не е част от CRT.
Но защо да слагам std:: отпред, ако човека писал речника е вкючил stdlib.h?

#include <cstdlib>   ->  std::getenv(...)   (С++)
#include <stdlib.h>  ->  getenv(...)          (С)

Едва ли той не знае горното.

2. string е typedef  на basic_string<...> от STL и е в std пространството.

3. Мерси за речника :)
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: C Runtime library инсталация
« Отговор #12 -: Jul 29, 2010, 23:18 »
Аз не видях със сигурност да се твърди че е инклуднат stdlib.h, пише единствено че е функцията е декларирана във въпросният хедър.
Активен

"Knowledge is power" - France is Bacon