Покажи Публикации - mazzzterZ
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: 1 [2] 3
16  Linux секция за начинаещи / Настройка на програми / Re: Проблем при компилация на GTK програма -: Sep 27, 2009, 10:08
Тази грешка ми я даваше, не когато компилирам, а когато стартирам програма и вчера забелязах, че я дава и когато стартирам други приложения от терминала като например update-manager. Но днес я няма, а единственото нещо, което съм правил е(освен че преинсталирах pango, atk и gtk) е че изпълних и кода:
Код:
sudo mv /usr/local/ /usr/local.old
sudo mkdir /usr/local/
Вярно изтри ми някои програми, които съм си компилирал и инсталирал като например vlc, но поне изчезна, а тези команди ги изпълних, защото след преинсталацията на трите неща споменати по-горе, ми изчезнаха всички теми, което обикновенно се случваше след инсталация на glib.
17  Linux секция за начинаещи / Настройка на програми / Re: Проблем при компилация на GTK програма -: Sep 26, 2009, 21:52
За грешката - провери дали можеш да копираш файла на libcanberra-gtk-module.so в твоята директория. Най-вероятно нямаш права да го четеш, щом става със sudo.

Файла го намерих в /usr/lib/gtk-2.0/modules/ , но като го копирах в моята директория не изчезна съобщението. Пробвах и да сменя правата така че всеки да има достъп до файла, но пак нямаше промяна.
18  Linux секция за начинаещи / Настройка на програми / Проблем при компилация на GTK програма -: Sep 26, 2009, 20:57
Здрашейте !
Инсталирах GTK на Ubuntu 9.04 без проблеми, но когато компилирам програма ми изкарва съобщението:
Код:
Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory
Пакета libcanberra-gtk-module е инсталиран.
Забелязах, че грешката може да се махне, ако компилирам програмата отпред със sudo т.е.
Код:
sudo gcc `pkg-config --cflags --libs gtk+-2.0` main.c -o main
Но тъй като компилирам с Code blocks няма каде да вмъкна sudo-то, а и не ми се иска всеки пат да ми иска парола, така че ако някой има идея моля споделете.
Благодаря предварително.
19  Програмиране / Общ форум / Re: GTK и Code Blocks -: Apr 20, 2009, 13:56
Няма значение оправих се вече. За други хора, които имат същият проблем ето какво да направят:

Settings -> Compiler and Debugger -> Global compiler settings -> Compiler settings -> Other options:
добавяте: (с кавичките)
Код:
`pkg-config --cflags gtk+-2.0`

Settings -> Compiler and Debugger -> Global compiler settings -> Linker settings -> Other options:
добавяте: (с кавичките)
Код:
`pkg-config --libs gtk+-2.0`
20  Програмиране / Общ форум / [SOLVED]GTK и Code Blocks -: Apr 20, 2009, 13:03
Здравейте !
Искам да се науча да правя графични програми. Но като се опитах да компилирам:
Код:
#include <gtk/gtk.h>

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window;
   
    gtk_init (&argc, &argv);
   
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_show  (window);
   
    gtk_main ();
   
    return 0;
}

Първо ми даваше грешки за дебъгера, но това се оправи като казах на IDE-то каде да търси хедър файловете:

Settings -> Compiler and Debugger -> Search Directories -> Compiler:
/usr/include/gtk-2.0/ - gtk.h
/usr/include/glib-2.0/ - gio.h
/usr/lib/glib-2.0/include - glibconfig.h
/usr/include/cairo - cairo.h
/usr/include/pango-1.0/ - pango.h
/usr/lib/gtk-2.0/include - gdkconfig.h
/usr/include/atk-1.0/ - atk.h

Но сега ми дава тази грешка:
Код:
main.cpp|6|undefined reference to `gtk_init'
main.cpp|8|undefined reference to `gtk_window_new'
main.cpp|9|undefined reference to `gtk_widget_show'
main.cpp|11|undefined reference to `gtk_main'

Предполагам, че не знае каде са библиотеките, но не мога да разбера кои библиотеки трябва да търся, за да им добавя пътищата в IDE-то.
Ако някой би могъл да ми каже каде са или да даде линк към страница, кадето има информация за това моля пишете.
Също няма проблеми с инсталацията, защото с командата:
Код:
g++ -Wall -g main.c -o main `pkg-config --cflags gtk+-2.0` \`pkg-config --libs gtk+-2.0`
се компилира без проблеми.
21  Програмиране / Общ форум / Re: Как да си създам мой собствен .h файл в С++ ? -: Mar 23, 2009, 11:33
Благодаря за помоща  ;D. Честно казано, не вярвах, че ще получа толкова подробни отговори, за което ти благодаря victim70 и за критиките към сорса също. Така поне ще знам на какво да наблягам в бъдеще и как да пиша. Това за библиотеките, ще ми е от полза също. Честно казано идеята ми да искам да си направя собствен хедър файл дойде зареди темплейт функцията ми dyn_save(). След като видях колко писане ми спестява, реших, че ако си имам хедър файл, който я съдържа ще мога да си я ползвам за всички програми, които ще пиша занапред( е разбирасе, ще го редактирам както Emooo предложи, бях забравил, че могат да се предефинират и универсалните функции  ;D)
Emooo  мерси и за книгите, които си препоръчал. Тъкмо сега се чудих мислих каква книга да започна, а не исках да започвам от самото начало с друга книга(може и да имам малки пропуски в основните неща, но съм сигурен, че с главоболия и гугле ще се изчистят)
22  Програмиране / Общ форум / Re: Как да си създам мой собствен .h файл в С++ ? -: Mar 21, 2009, 22:03
Много ти благодаря victim70.

1. Да съобщението съм го видял,
Цитат
#warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.|
Но да си призная не съм му обърнал много внимание. Даже и ен знам кога се е появило, тъй акто имах проблеми с полифорфизма и даваше много грешки, а аз променях различни неща... няма значение. Ще му обърна внимание.

2. Ще го имам предвид това, но да питам това означавали, че трябва да избягвам и темплейт класове ?(въпреки че в отговара ти имаш предвид изобщо всички темплейти... но все пак да питам).

3. откакто се запознах с try и catch винаги сам се чудил, кое ще е по-бързо. Да използвам изключенията или да да използвам new(nothrow) и после да проверявам за NULL. Също да питам в такива малки заделения на памети за вбъдеще да изпускам ли такива проверки ? Все пак те искат само няколко байта от паметта или е по-добре да си ги оставя, въпреки, че ще мъчат малко повечко процесора.

7. Тука не разбрах какво точно си имал рпедвид. В тази функция имам само константни съобщения, потребителя нищо не вкарва.

10. За goto бях чел, че трябва да се избягва, но  ми изглеждаше като анчин да ми е по-чист кода, но да наистина ако някой друг го гледа може да се обърка. Ще го заменя с do{}while()

11. Не това не е пример от книжка. Това е задача от преди 2 месеца, която беше на С(домашна работа в университета)и аз като започнах да изучавам С++ почнах да я надграждам постепенно с новите неща, които научавам и се стигна до тука. Книгата май не препоръчва операционна система или поне аз не съм забелязал, но откакто съм на линукс не мога да не призная, че линукса ми е като среда, която съм приел твърдо за програмиране

Пак много благодаря за помоща и бързият отговор.  ;D

П.П. Само да питам има ли вариант функциите ме да отидат в друг файл и когато викна хедъра, той да си ги вика от другият файл ?
23  Програмиране / Общ форум / Re: Как да си създам мой собствен .h файл в С++ ? -: Mar 21, 2009, 19:39
Код:
#include<iostream>
#include<cstring>
#include<typeinfo>
#include<new>
#include<strstream>
//#include "classes.h"

int test=0;

using namespace std;

template<class TMP> TMP *dyn_save(TMP *temp, int length=0);

//Classes_begin.................................................................
class library {
public:
    virtual void f() {}
};

class book : public library {
public:
    ~book() { delete name; delete year; cout << "Destructing Book !!!" << endl; }
    char *name;
    int *year;
    int enter_info();
};

class item {
public:
    ~item() { cout << "Destructing Node !" << endl; }
    library *pData;
    item *pNext;
};

class stack {
    item *top;
public:
    ~stack() { cout << "Destructing Stack !" << endl; }
    stack() { top = NULL; }
    void push(library *obj);
    item *pop();
};

class message {
public:
    void enter_name(char *temp);
    void enter_year(int *temp);
    char *enter_book();
};

class error {
public:
    char *memory_error();
};

//Classes_end...................................................................


template<class TMP>
TMP *dyn_save(TMP *temp, int length=0) {
    TMP *mem;
    try {
        if(length){
            if(typeid(*temp) == typeid(char)) {
                mem = new TMP[length+1];
                if(temp!=NULL)
                    memcpy(mem, temp, length+1);
            }
            else {
                mem = new TMP[length];
                if(temp!=NULL)
                    memcpy(mem, temp, (sizeof(temp[0])*length));
            }
        } else {
            mem = new TMP;
            if(temp!=NULL)
                *mem = *temp;
        }
    } catch(bad_alloc x) {
        return NULL;
    }
    return mem;
}



bool yes_or_no(char *x);



//Class_Functions_begin.........................................................
int book::enter_info() {
    char *temps=NULL;
    int *tempi=NULL;
    temps = dyn_save(temps, 1000);
    if(temps==NULL) return -1;
    tempi = dyn_save(tempi);

    message msg;
    msg.enter_name(temps);
    this->name = dyn_save(temps, strlen(temps));
    delete []temps;

    msg.enter_year(tempi);
    this->year = dyn_save(tempi);
    delete tempi;

    return 0;
}

void stack::push(library *obj) {
    item *node=NULL;
    node = dyn_save(node);

    node->pData = obj;
    node->pNext = top;
    top = node;
}

item *stack::pop() {
    book *pBook;
    item *temp;
    pBook = dynamic_cast<book *> (top->pData);
    cout << "Name: " << pBook->name;
    cout << endl;
    cout << "Year: " << *(pBook->year);
    cout << endl;
    delete pBook;
    temp = top;
    top = top->pNext;
    delete temp;
    return top;
}

void message::enter_name(char *temp) {
    bool correct;
    char *c;
    //........................................
    if(test==1) {
        cin.getline(temp,1000);
    }
    test = 1;
    //........................................
    do {
        correct = true;
        cout << "Enter a name: ";
        cin.getline(temp,1000);
        for(c=temp; *c!='\0'; c++)
            if(!((*c>='a' && *c<='z') || (*c>='A' && *c<='Z') || *c=='\"' || *c=='.' || *c=='\\' || *c==' ')) {
                correct = false;
                break;
            }
    } while(correct==false);

}

void message::enter_year(int *temp) {
    do {
        cout << "Enter a year: ";
        cin >> *temp;
    } while(*temp<0 || *temp>2009);
}

char *message::enter_book() {
    char buf[1000];
    ostrstream msg(buf, sizeof(buf));
    msg << "Would you like to enter a book ? ";
    msg << '\0';
    char *temp;
    temp = dyn_save(buf, strlen(buf));
    return temp;
}

char *error::memory_error() {
    char buf[1000];
    ostrstream err(buf, sizeof(buf));
    err << "There isn't enough memory available!" << endl;
    err << "Free more memory if you would like to continue ? y/n: ";
    err << '\0';
    char *temp;
    temp = dyn_save(buf, strlen(buf));
    return temp;
}
//Class_Functions_end...........................................................


//Main_Functions_begin..........................................................

int main() {

    book *Book=NULL;

    stack *stk=NULL;
    stk = dyn_save(stk);

    message *msg=NULL;
    msg = dyn_save(msg);

    error *err=NULL;
    err = dyn_save(err);

    int no_mem;
    do {
        begin: //This is used by goto.
        Book = dyn_save(Book);
        no_mem = Book->enter_info();
        if(no_mem==-1) {
            if(yes_or_no(err->memory_error())==false) break;
            else goto begin;
        }
        stk->push(Book);
        cout << flush;
    } while(yes_or_no(msg->enter_book())==true);

    cout << endl;

    while(stk->pop()!=NULL)
        cout << endl;
    delete stk;
    cout << "Sucess !";
    return 0;
}

//Main_Functions_end............................................................

//Functions.....................................................................
bool yes_or_no(char *x) {
    char y_n;
    try {
        cout << x;
        delete x;
        cin >> y_n;
        throw y_n;
    } catch(char y_n) {
        if(y_n=='y') return true;
        else return false;
    }
}

Това е задачата ми. Целта ми е в главният файл да имам само main програмата. Всичко друго искам да го вмъкна в хедър.

Щях да забравя. Значи имам още един проблем. Когато с cin.getline() въведа нещо за втори път то не ме чака,а направо ми записва празно поле или нов ред не съм сигурен. Това успях да го избегна с глобалната променлива test, но е много дървено и не ми харесва.

А това за книгите не, че не искам да си копувам, книги, но в момента нямам пари да харча за такива неща. Е то може и да има, но се влагат в други неща(споко не е алкохол, аз не пия алкхолни напитки).
24  Програмиране / Общ форум / Re: Как да си създам мой собствен .h файл в С++ ? -: Mar 21, 2009, 18:41
Хедър файловете ползват абсолютно същия синтакс като другите.
Ако не си зубрил, би трябвало да се справиш.
Хедърите се ползват (обикновено) за предварително дефиниране на някой работи.

Ми както казах в книгата не бяхс засегнати изобщо. Иначе от това, което научих в хедър файловете си извиквам функциите, а в друг файл cpp си пиша какво правят функциите и после, като в този файл добавям хеъд файла в който се извиква. А във файла в който ми е main си извиквам моят хедър заграден в кавички. Но акто направя това пак не става. Например в този файл в който съм си описал функциите ми казва, че му е непознато cout и cin, а аз съм включил хедъра iostream. Затова питам, ако има някаде подробен туториал да видя какво изпускам.
25  Програмиране / Общ форум / Re: Как да си създам мой собствен .h файл в С++ ? -: Mar 21, 2009, 18:11
А някакъв вариант, който да не ми струва пари ?
Аз вече съм прочел книгата на Хърб Шилдт, но там никаде не се споменаваше за хедър файлове.
26  Програмиране / Общ форум / Как да си създам мой собствен .h файл в С++ ? -: Mar 21, 2009, 17:36
Здравейте !
Искам да питам как да създам свой собствен .h файл и или ако някой може да ми даде линк към някое подробно описание на стъпките които трябва да следвам, защото от това което намерих из гугле нищо не можа да ми свърши работа практически.
27  Linux секция за начинаещи / Настройка на програми / Проблем с писане върху ntfs дял -: Sep 18, 2008, 00:40
Пробвах да го демонтирам с командата, която ми даде, но не ми позволява:
Цитат
sudo umount /dev/sda4
umount: /media/Stuff: device is busy
umount: /media/Stuff: device is busy


Иначе мога да си го демонтирам и монтирам като си добавя на лентата(панела)  Disk Mounter. С него се демонтира и монтира без проблеми.

Съдържанието на fstab е:
Цитат
# /etc/fstab: static file system information.
#
#  -- This file has been automaticly generated by ntfs-config --
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc /proc proc defaults 0 0
# Entry for /dev/sda1 :
UUID=0e85ea85-4f6f-43c7-92eb-742a0cd46a83 / ext3 relatime,errors=remount-ro 0 1
# Entry for /dev/sda5 :
UUID=540d2629-8489-43bc-8b1a-23d116f4f37f none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0


П.П. Чак сега като ти прочетох псота отново осъзнах, че май сам те объркал нещо. Значи sda4 се монтира и аз мога да го чета, но не мога да пиша върху него.

EDIT: Не знам как, но сега открих, че вече ми дава да пиша на sda4... може бе защото сам бил под Уиндоус както каза, но мисля, че сам бил и преди това на уиноудс след като сам го преинсталирал. Явно вече няма значение... все пак благодаря ти за помоща.



28  Linux секция за начинаещи / Настройка на програми / Проблем с писане върху ntfs дял -: Sep 16, 2008, 23:32
Пробвах това, което каза:
Цитат
sudo mount -t ntfs-3g -o rw,umask=000 /dev/sda4 /media/Stuff/

но не става пак същата грешка, която написах по-горе като се опитвах да го маунтна:
Цитат
fuse: mount failed: Device or resource busy


А при
Цитат
sudo ntfsfix /dev/sda4

ми дава тази грешка:
Цитат
Refusing to operate on read-write mounted device /dev/sda4.


Има ли вероятност проблема да е от нещо друго ?

EDIT: Не знам дали има значение, но забравих да напиша какво точно изписва като например се опитам да създам папка на sda4. Ето какво изписва:


Цитат
Error while creating directory untitled folder
There was an error creating the directory in /media/Stuff.
     Show more details
Error removing file: Operation not supported




29  Linux секция за начинаещи / Настройка на програми / Проблем с писане върху ntfs дял -: Sep 16, 2008, 23:14
Тези логове, за които говориш не знам каде са, а за маунтването от конзолата... не знам как точно да я маунтна от конзолата на mount мога да използвам само --bind нищо друго не знам за него. Ако можеш да обясниш малко по-подробно ще ти бъда много благодарен.

EDIT: пробвах това:
Цитат
sudo mount -t ntfs-3g /dev/sda4 /media/Stuff/

и ако предварително ми е маунтнато устройството ми изписва:
Цитат
fuse: mount failed: Device or resource busy

а ако не е предварително маунтнато:
Цитат
fuse: failed to access mountpoint /media/Stuff/: No such file or directory




30  Linux секция за начинаещи / Настройка на програми / Проблем с писане върху ntfs дял -: Sep 16, 2008, 20:34
Използвам Ubuntu 8.04 и наскоро имах проблеми с графичната среда и като уж се оправи се появиха още много повече и затова го преинсталирах. Сега всичко си работи с изключение на едно нещо... не мога да пиша върху NTFS дялът ми. Хардът ми е разделен на 4 дяла:
Linux(sda1) - 15GB ext3
Swap(sda5) - 1GB
Windows(sda3) - 40 GB NTFS
друг дял(sda4) - 94 GB NTFS
Мога да пиша върху всички дялове с изключение на sda4. Първо си мислех, че 3g-ntfs не е инсталирано, но се оказа, че е инсталирано и сега се чудя да не е забранено писането върху само единият NTFS дял, защото върху другият, на който ми е Windows позволява да се пише. Ако имате някакви предложения моля пишете.
Страници: 1 [2] 3