Undefined reference to function – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Undefined reference to function – C / C++ – Fórum – Programujte.comUndefined reference to function – C / C++ – Fórum – Programujte.com

 

oxidián0
Grafoman
18. 3. 2015   #1
-
0
-

Snažím se rozjet bitpack:

https://github.com/bcg/bitpack/blob/master/test/bitpack_tests.c

#include "bitpack_tests.h"
int main()
{
CuString *output = CuStringNew();
CuSuite *suite = CuSuiteNew();
CuSuiteAddSuite(suite, bitpack_get_suite());
CuSuiteRun(suite);
CuSuiteSummary(suite, output);
CuSuiteDetails(suite, output);
printf("%s\n", output->buffer);

return 0;

}

Ale dostávám hlášku:

main.c|undefined reference to `bitpack_get_suite'

Přitom tato funkce je definovaná v

bitpack_tests.c

bitpack_tests.h:

#ifndef BITPACK_TESTS_H_INCLUDED
#define BITPACK_TESTS_H_INCLUDED

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "CuTest.h"
#include "bitpack.h"

static void test_bitpack_constructor(CuTest *tc);
static void test_bitpack_get_on_off(CuTest *tc);
static void test_bitpack_get_set_bits(CuTest *tc);
static void test_bitpack_get_set_bytes(CuTest *tc);
static void test_bitpack_append_bits(CuTest *tc);
static void test_bitpack_append_bytes(CuTest *tc);
static void test_bitpack_read_bits(CuTest *tc);
static void test_bitpack_read_bytes(CuTest *tc);
static void test_bitpack_to_bytes(CuTest *tc);
static void test_bitpack_from_bytes(CuTest *tc);
static CuSuite *bitpack_get_suite(void);

#endif // BITPACK_TESTS_H_INCLUDED
Nahlásit jako SPAM
IP: 78.45.199.–
vitamin+8
Grafoman
18. 3. 2015   #2
-
0
-

#1 oxidián
Zrejme musis rilinkovat kniznicu.

Nahlásit jako SPAM
IP: 95.105.229.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
oxidián0
Grafoman
18. 3. 2015   #3
-
0
-

To nepomohlo.

Ještě taková zvláštnost. V souboru s hlavičkou bitpack_tests je ke všem funkcím hláška:

warning: 'jméno funkce' used but never defined...

Nahlásit jako SPAM
IP: 78.45.199.–
18. 3. 2015   #4
-
0
-

Co třeba zkusit si tu hlášku přeložit? Používáš funkci, která není nikde definována. bitpack_tests.c by měla být přidána do projektu a na bitpack_tests.h by měla být správně nastavena "include path" v "properties" projektu nebo také přidána do projktu

hu

Nahlásit jako SPAM
IP: 193.86.81.–
oxidián0
Grafoman
18. 3. 2015   #5
-
0
-

Proč do properties projektu? To jsem dělal pokud si pamatuju jen u dll nebo lib knihoven. Mám všechny soubory přidáné v projektu a includované jak jsem již psal.

Nahlásit jako SPAM
IP: 78.45.199.–
KIIV
~ Moderátor
+43
God of flame
18. 3. 2015   #6
-
0
-

Ocividne vsechno nemas, kdyz ti to nedokaze slinkovat kvuli referenci na nedefinovanou funkci

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
oxidián0
Grafoman
19. 3. 2015   #7
-
0
-

Jediné co jsem měnil v souboru bitpack.c že jsem přesunul deklarace do souboru hlavičky a odstranil jsem main.

static CuSuite *bitpack_get_suite(void)
{
CuSuite *suite = CuSuiteNew();
SUITE_ADD_TEST(suite, test_bitpack_constructor);
SUITE_ADD_TEST(suite, test_bitpack_get_on_off);
SUITE_ADD_TEST(suite, test_bitpack_get_set_bits);
SUITE_ADD_TEST(suite, test_bitpack_get_set_bytes);
SUITE_ADD_TEST(suite, test_bitpack_append_bits);
SUITE_ADD_TEST(suite, test_bitpack_append_bytes);
SUITE_ADD_TEST(suite, test_bitpack_read_bits);
SUITE_ADD_TEST(suite, test_bitpack_read_bytes);
SUITE_ADD_TEST(suite, test_bitpack_to_bytes);
SUITE_ADD_TEST(suite, test_bitpack_from_bytes);
return suite;
}
/*
int main(void)
{

CuString *output = CuStringNew();
CuSuite *suite = CuSuiteNew();
CuSuiteAddSuite(suite, bitpack_get_suite());
CuSuiteRun(suite);
CuSuiteSummary(suite, output);
CuSuiteDetails(suite, output);
printf("%s\n", output->buffer);
return 0;
}
*/
Nahlásit jako SPAM
IP: 78.45.199.–
oxidián0
Grafoman
19. 3. 2015   #8
-
0
-
Nahlásit jako SPAM
IP: 78.45.199.–
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, 95 hostů

Podobná vlákna

Undefined function — založil Kowalsky

Undefined reference — založil janek

Undefined reference... — založil kju:b

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ý