Автор Тема: C++ graphics objects проблем с executable file  (Прочетена 2683 пъти)

ddimkin

  • Напреднали
  • *****
  • Публикации: 23
    • Профил
Здравейте,
студент съм и от 5 седмици програмирам на С#, през живота си не се бях занимавал с такова нещо, но сега се наложи и никак не е зле  '<img'>  Започнахме, разбира се с ""Hello world!" , минахме през Fundamental Data Types и сега сме на Graphics Objects. Да вметна само, че от около половин година се занимавам с Линукс, а от около два месеца имам Ubuntu Dapper Drake и все по-рядко ми се налага да превкл. под Уиндоус. Такава беше и идеята ми: лека-полека- към форматиране на уиндоуските дялове...и ето го и проблема: с# учиме по книгата на Cay Horstmann, a тя е мислена за работа под уиндоус, а на упражненията трябва да компилираме под Линукс, така че аз вкъщи се упражнявах също под Линукс и всичко беше о.к. докато не дойдоха обектите  и ползването на хедъри и библиотеки, които не са част от стандартния с#. Но дори и това работеше преди да дойдат графичните обекти  '<img'>  разбира се библиотеките и хедърите ги ползваме на готово от тук:

Source code for all sample programs and the CCC library Big C++ | C++ Essentials:

http://horstmann.com/bigcpp.html

Първата задача от графичните обекти има следния сорс:
 
#include "ccc_win.h"
int ccc_win_main()
{
  point p(1,3);
  cwin << p << Circle(p, 2.5);
  return 0;
}

и съответно на cwin ( който така и не съм виждал още...) трябва да се появи едно кръгче с точица в центъра, но не става...Правя всичко според инструкциите:

Before starting to write graphics programs, you should copy two files to your current working directory, namely:
/usr/local/share/cccbook3/cccfiles/ccc_x11.cpp
/usr/local/share/cccbook3/cccfiles/ccc_shap.cpp

копирам всички необходими фаилове, а именно: ccc_win.h, ccc_x11.cpp, ccc_shap.cpp, както и сорсфайа в работната ми директория и компилирам с:

c++ -o your_executable your_source ccc_x11.cpp ccc_shap.cpp -L /usr/X11R6/lib -lX11

като естествено замествам с имената на моите фаилове

c++ circle.cpp ccc_x11.cpp ccc_shap.cpp -o circle -L /usr/X11R6/lib -lX11

и получавам това:

circle.cpp: In function ‘int ccc_win_main()’:
circle.cpp:4: error: ‘point’ was not declared in this scope
circle.cpp:4: error: expected `;' before ‘p’
circle.cpp:5: error: ‘p’ was not declared in this scope

Защо се обръщам към форума, а не към професора ми? Защото нямам лаптоп, а пък не мисля, че той би дошъл до вкъщи да види какво става на конзолата на моето Ubuntu, пък и не знам дали той разбира чак толкоз от различните дистибуции и дали не работи само на Дебиан(на който компилираме и ние и под който успяваме да създадеме executable със същите инструкции..)
Kakво върши " -L /usr/X11R6/lib -lX11 " и дали го имам и аз? Както казах, нов съм с Линукс, но искам да напредна, а засега не ми остава друга възможност, освен да компилирам последните задачи с DevC++ под Уиндоус  '<img'>
Дано да съм задал правилно въпроса, и дано се намери някой, който да ми помогне...с удоволствие ще допълна информацията, ако нещо съм забравил..само питайте...
Ako знаете линкове и съвети за програмиране на с# с текстов редактор и конзола, много бих им се зарадвал '<img'>
merci предварително!



Активен

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
C++ graphics objects проблем с executable file
« Отговор #1 -: Oct 31, 2006, 17:00 »
Не че нещо, ама откога С# приложения се компилират със С++ компилатор. За тях ти трябва cs компилатора на проекта моно. Аз обаче за (не)щастие съм чел книгата на Кай Хорстман - Обетктно-оринтирано програмиране С++, пък и виждам че сорса ти е на С++ и хич не ми я ясно какви точно ги вършиш. Във всеки случай за да ползваш нещо от Х11 ще трябва да добавиш неговите хедъри(а не уиндоуски), които сигурно са в пакет от вида X11-devel или нещо такова...
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
C++ graphics objects проблем с executable file
« Отговор #2 -: Oct 31, 2006, 17:02 »
Имам чувството, че бъркаш малко C++ и C#. C# е език, проектиран от Microsoft в рамките на .NET Framework-а им. C++ е "надстройка" на C, с добавена поддръжка на обекти и един куп други неща.

Като гледам кода и имената на файловете, които компилираш, по-скоро на C++ програмирате.


По въпроса за -L и -l - първото добавя подадената му директория в списъка с директории, в които да търси библиотеки. Второто инструктира linker-а да свърже изпълнимия файл с подадената библиотека.


@Lord_Bad, освен ако заглавните (header) файлове на X не са включени в някой от заглавните файлове, които са включени във въпросната програма (в случая ccc_win.h), или бъркам?
Ще рече - при '-L /usr/X11R6/lib -lX11' изпълнимия файл ще се свърже с библиотеката X11 и при опита за свързване въпросната библиотека ще бъде потърсена и в /usr/X11R6/lib.



Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
C++ graphics objects проблем с executable file
« Отговор #3 -: Oct 31, 2006, 17:27 »
Като за начало замени #include "ccc_win.h" с #include "ccc_x11.h"

Не знам защо смяташ че пишеш на c#. В c# няма хедър файлове '<img'>.
Така като правиш нещата ще получиш чист нейтив код на линукс.

Ако професорът ти твърди, че това е C# код много добре си направил, че си писал в този форум '<img'>



Активен

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
C++ graphics objects проблем с executable file
« Отговор #4 -: Oct 31, 2006, 17:59 »
@Hapkoc,
Напълно е възможно да са там и все пак това win накрая ме кара да си мисля че там има само уиндоуски хедъри. Във всеки случай след като му дава not declared, а не not defined значи каквито и хедъри да са включени никакви ги няма. За -L и -l си напълно прав. За да не му се налага на пича да пише -L всеки път може да си добави пътя в /etc/ld.so.conf и после да пусне програмата ldconfig...
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

ZERG

  • Напреднали
  • *****
  • Публикации: 104
    • Профил
C++ graphics objects проблем с executable file
« Отговор #5 -: Oct 31, 2006, 20:37 »
И аз имах същия проблем и не можах да се  справя с него.Вопще не тръгнаха тези библиотеки '<img'>.
Впрочем това е една доста голяма грешка в книгата.
Активен

I hate control I use Linux
Slackware INC
Човек се учи докато е жив
Дай ми здрав ритъм,торба с трева и около мен да се върти най-красивата жена
I love Marie Marie Fredriksson !

ddimkin

  • Напреднали
  • *****
  • Публикации: 23
    • Профил
C++ graphics objects проблем с executable file
« Отговор #6 -: Oct 31, 2006, 22:28 »
Благодаря за отговорите  '<img'> и съжалявам, че съм ви заблудил...става въпрос за с++, а аз просто си мислех, че мога по-кратко да го пиша като с#. Открих грешката- в сорса е трябвало да е "Point", a нe "point"...но как да се сетя, като мислех, че аз съм този, който създава обекта Point=.....(....);
Благодаря и за разясненията към командата с++........ Последно нещо...някаква литература да препоръчате? THANX
п.п. малко набързо ни ги обясняват нещата и част от логиката естествено ми се губи...та си мисля, ако не прочета допълнително, нито оценка ще изкарам, нито нещо ще запомня...проблема е, че няма много време и трябва бързо да влеза в час, а без добро четиво няма да стане...на Хорстман нещата ще трябва също да ги чета заради лекциите, а и по тях правиме контролни  '<img'>  .....



Активен

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
C++ graphics objects проблем с executable file
« Отговор #7 -: Nov 01, 2006, 00:09 »
Ми тая книга дето я четеш е абсолютна нула - лично мое мнение.
Добри книги за С++ са:
1.The C++ Programming Language
2.Thinking in C++
3.Effective C++
4.More Effective C++
5.Effective STL
6.The C++ Standard Library : A tutorial and a reference
7.C++ Primer
8.Exceptional C++
Книги има бол, време да се четат обаче няма много'<img'>
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
C++ graphics objects проблем с executable file
« Отговор #8 -: Nov 01, 2006, 00:42 »
Lord_Bad, growchie - на теория сте прави за ccc_win.h vs. ccc_x11.h, на практика - не. :)

Примерен код

#include "ccc_shap.h"

#if defined(_MSC_VER)
   #define CCC_MSW
#endif
#if defined(_WINDOWS_) || defined (_Windows) || defined(WINVER) || defined()
   #define CCC_MSW
#endif
#if defined() && !defined(CCC_MSW)
   #define CCC_X11
#endif

#if defined(CCC_ASC)
#include "ccc_asc.h"
#elif defined(CCC_WXW)
#include "ccc_wxw.h"
#elif defined(CCC_X11)
#include "ccc_x11.h"
#elif defined(CCC_MSW)
#include "ccc_msw.h"
#else
#include "ccc_asc.h"
#endif
Активен

ZERG

  • Напреднали
  • *****
  • Публикации: 104
    • Профил
C++ graphics objects проблем с executable file
« Отговор #9 -: Nov 01, 2006, 07:59 »
Цитат (Lord_Bad @ Ноември 01 2006,01:09)
Ми тая книга дето я четеш е абсолютна нула - лично мое мнение.
Добри книги за С++ са:
1.The C++ Programming Language
2.Thinking in C++
3.Effective C++
4.More Effective C++
5.Effective STL
6.The C++ Standard Library : A tutorial and a reference
7.C++ Primer
8.Exceptional C++
Книги има бол, време да се четат обаче няма много'<img'>

Тези книги само на в интернет ли се намират.Мога ли да си ги закупя че много мразя да си тормозя очите '<img'>
И аз уча по книгата на Кай Хортсман.Найстина не е кои знае какво ама върши работа.Попадал сам и на книги дето българи са ги писали и направо нямам думи.Много лош стил на писане.Да знаете от мене не закупувайте книги с български автори тотално ще се объркате.Просто съвет '<img'>



Активен

I hate control I use Linux
Slackware INC
Човек се учи докато е жив
Дай ми здрав ритъм,торба с трева и около мен да се върти най-красивата жена
I love Marie Marie Fredriksson !

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
C++ graphics objects проблем с executable file
« Отговор #10 -: Nov 01, 2006, 09:53 »
@Hapkoc,
Гадаех, а не съм екстрасенс. Аз и без друго никога не съм писал нещо директно на win api или x11 api. Но във всеки случай дори и тези хедъри, които той добавя с условните директиви в началото също са си някакви негови.
@ZERG,
1, 3, 4 ги има тука издадени, но не са подходящи за начинаещи, особено 3 и 4. За начинаещи препоръчвам Thinking in C++ - тя дори е безплатна за теглене от сайта на автора, заедно с други негови книги.
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
pomo6t za S3 GRAPHICS PRO SAVAGE DDR
Настройка на хардуер
vanko_prog 2 1995 Последна публикация Oct 23, 2004, 15:59
от Филип Бонев
Executable file.gambas
Общ форум
Luigi 2 1357 Последна публикация Oct 31, 2005, 10:47
от Luigi
Fedora + gcc проблем - cannot create executable
Хардуерни и софтуерни проблеми
Vesko 4 1639 Последна публикация Mar 25, 2006, 12:54
от Vesko
(РЕШЕН) Помощ за intel graphics
Настройка на хардуер
HeavenWarrior 6 3655 Последна публикация Oct 27, 2008, 22:09
от fogata
Intell Graphics Drivers / intel hd graphics 530
Настройка на хардуер
polusar 16 6424 Последна публикация Jan 17, 2017, 18:48
от go_fire