Jak zprovoznit moje moduly – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak zprovoznit moje moduly – C / C++ – Fórum – Programujte.comJak zprovoznit moje moduly – C / C++ – Fórum – Programujte.com

 

Adam
~ Anonymní uživatel
176 příspěvků
12. 2. 2012   #1
-
0
-

Dobrý den,

V ediroru devcpp jsem vytvořil tenhle svůj modul nazvaný "lasak.c":

extern int secti(int cislo1, int cislo2);
int main()
{   
}
extern int secti(int cislo1, int cislo2)
{
    return cislo1 + cislo2;
}

Dále jsem jej předělal na "lasak.h":

#ifndef _LASAK_
#define _LASAK_

extern int secti(int cislo1, int cislo2);

#endif

Pak jsem soubor "lasak.h", nakopíroval do složky kde je nainstalovaný devcpp konkrétně do složky "include". Jak jsem chtěl zkompilovat tenhle zdrojový kód: (omlouvám se za nepromyšlenost, ale to je mi teď naprosto jedno)

#include <stdio.h>
#include <lasak.h>
int main()
{
    int cisla[1];
   
    for (int i = 0; i <= 2; ++i){
        printf("Zadejte %d cislo: ", i);
        scanf("%d", cisla[i]);
        }
    printf("\n%d\n", secti(cisla[0], cisla[1]));
    getchar();
    return 0;
}

ale tohle mi nefuguje. Pak jsem  našel někde na vašich stránkách: "Vytvořte nový C++ projekt (nejlépe asi Windows Application), jděte do Projekt->Vlastnosti projektu->Parametry a do linkeru připište:" je to ze seriálu o SDL a myslím se že jak se includují knihovny o sdl tak by to mohlo fungovat i na moje. Jenže celý tenhle postup taky nefungoval. Pořád mi to háže chybu linkeru. Proto se Vás všech chci zeptat, jak se tvoří moduly, tak aby mi fungovali.

Nahlásit jako SPAM
IP: 46.174.59.–
yaqwsx+9
Posthunter
12. 2. 2012   #2
-
0
-

Huh, trochu divočina. Předpokládám, že slovem modul myslíš funkci. Déle by bylo vhodné uvést i chybu, co ti to píše...

Každopádně; aby ti to fungovalo, musíš opravit následující chyby:

  • ze souborů lasak.c a lasak.h odeber slovo extern. To tam nemá co dělat.
  • ze souboru lasak.c samaž funkci main (main je v programu jen jedna)
  • místo "extern int secti(int cislo1, int cislo2);" v souboru lasak.c napiš #include "lasak.h"
  • v main.c nahraď #include <lasak.h> #include "lasak.h"

Takto by ti to mělo jít zkompilovat. Z tvého kódu vidím snahu jakoby vytvořit "další standardní knihovnu", která se includuje pomocí závorek < a > místo uvozovek. Co tě k tomu vede?

Každopádně pokud by jsi o to mermocí stál, tak stačí mít podle výše uvedených rad upravené soubory někde uložené a v nastavení IDE (nevím, které používáš) nastavit dodatečné cesty k hlavičkovýma zdrojovým souborům.

Nahlásit jako SPAM
IP: 85.160.57.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Samot10
~ Anonymní uživatel
26 příspěvků
13. 2. 2012   #3
-
0
-

-bude ti to hadzat segfault(v tom lepsom pripade) po spusteni ;)
"int cisla[1]" uprav na "int cisla[2]"

-cyklus ti prebehne 3x pricom chces len 2 cisla...

-nechapem tomu getcharu na konci...

Nahlásit jako SPAM
IP: 147.229.206.–
yaqwsx+9
Posthunter
13. 2. 2012   #4
-
0
-

#3 Samot10
To jsem úolně přehlédl...

Nahlásit jako SPAM
IP: 85.160.34.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
KIIV
~ Moderátor
+43
God of flame
13. 2. 2012   #5
-
0
-

#3 Samot10
zajimalo by me proc ne "int cisla[3]", kdyz ma v cyklu i => 0 1 2    pro cisla[2] je jeste porad mimo rozsah pole

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Samot10
~ Anonymní uživatel
26 příspěvků
13. 2. 2012   #6
-
0
-

lebo potrebuje len 2 cisla, tak snad "int cisla[2]" a v cyklu "i<2", nie?

Nahlásit jako SPAM
IP: 147.229.65.–
devilfish0
Stálý člen
13. 2. 2012   #7
-
0
-

   

  for (int i = 0; i <= 2; ++i)
Nahlásit jako SPAM
IP: 188.121.172.–
Adam
~ Anonymní uživatel
176 příspěvků
13. 2. 2012   #8
-
0
-

Zdravím,

Nevím co už dělat, ale stále jsem ještě nespustil ani jednu aplikaci opengl. Prošel jsem snad stovky zdrojových kódu, návodu a už nevím čeho všeho. Avšak poslední kód který teď mám rozjetý v dev cpp není vyjímkou. Píše mi to tyhle chyby:

 D:\Knihovny\Plocha\main.cpp In function `GLvoid KillGLWindow()': 

77 D:\Knihovny\Plocha\main.cpp a function-definition is not allowed here before '{' token 

77 D:\Knihovny\Plocha\main.cpp expected `,' or `;' before '{' token

252 D:\Knihovny\Plocha\main.cpp a function-definition is not allowed here before '{' token

252 D:\Knihovny\Plocha\main.cpp expected `,' or `;' before '{' token

309 D:\Knihovny\Plocha\main.cpp a function-definition is not allowed here before '{' token

309 D:\Knihovny\Plocha\main.cpp expected `,' or `;' before '{' token

369 D:\Knihovny\Plocha\main.cpp `msg' undeclared (first use this function)

(Each undeclared identifier is reported only once for each function it appears in.)

369 D:\Knihovny\Plocha\main.cpp return-statement with a value, in function returning 'void'

D:\Knihovny\Plocha\Makefile.win [Build Error]  [main.o] Error 1

Už toho mám plné zuby. Začíná mi to připadat jak v linuxu. Věčně tomu něco chybí k tomu aby to běželo. Nemám nejmenší tušení co s tím je. Tady je kód:

Nahlásit jako SPAM
IP: 46.174.59.–
Adam
~ Anonymní uživatel
176 příspěvků
13. 2. 2012   #9
-
0
-

Ne pardon, to je jiný příspěvek

jinak jsem se ale té chyby s polem vůbec nevšiml, díky za upozornění

Nahlásit jako SPAM
IP: 46.174.59.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 69 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý