Zobrazit v plné verzi : [C++, Linux] kde je deklarovanej sin()?-math.h to neni.. :-(
Chtel jsem si pohrat se zvukarnou: ./generator > /dev/dsp :-)
jenze hned ze zacatku jsem zjistil, ze ani nespoctu sinus:
#include <stdio.h>
#include <math.h>
int main ()
{
float period;
int t;
printf("tabulka sinu\n");
for (t=0; t<1000; t++)
{
printf("%f\n%f\n", t/500.0, sin(t/500.0));
}
}
vyhodi pri kompilaci hlasku
undefined reference to 'sin'
Je to kompileny gcc
zkousel jsem to i maxiamalne zjednodusit - ze to jen do period priradilo sin naky konstantni hodnoty, a dopadlo to stejne. Jakoby v math.h nebyl sinus. (Neni ani v tgmath.h)
sorry, pokud je to maximalni lamerina, ale ja s tim neumim hnout..
Chtel jsem si pohrat se zvukarnou: ./generator > /dev/dsp :-)
jenze hned ze zacatku jsem zjistil, ze ani nespoctu sinus:
#include <stdio.h>
#include <math.h>
int main ()
{
float period;
int t;
printf("tabulka sinu\n");
for (t=0; t<1000; t++)
{
printf("%f\n%f\n", t/500.0, sin(t/500.0));
}
}
vyhodi pri kompilaci hlasku
undefined reference to 'sin'
Je to kompileny gcc
zkousel jsem to i maxiamalne zjednodusit - ze to jen do period priradilo sin naky konstantni hodnoty, a dopadlo to stejne. Jakoby v math.h nebyl sinus. (Neni ani v tgmath.h)
sorry, pokud je to maximalni lamerina, ale ja s tim neumim hnout..
mno podla dokumentacie by to v math.h malo byt ...
skus si ten math.h pozret v nejakom prehliadaci a pohladat ci tam ta fcia teda je alebo nejni ...
To jsem samo udelal, skutecne tam nic takovyho neni.. :(
mrkni sem
http://www.opengroup.org/onlinepubs/007908799/xsh/asin.html
v math.h to je jen se to jmenuje asin() :wink:
mrkni sem
http://www.opengroup.org/onlinepubs/007908799/xsh/asin.html
v math.h to je jen se to jmenuje asin() :wink:
Dik za link, uzitecnej, jen je to opacna funkce nez kterou chci, ale snad najdu i ten sin..
Edit: nasel jsem. Samo to tam podle te stranky ma byt. Muze mi nekdo vysvetlit, proc to teda nefacha?????
tezko rict, neams naborenej header file math.h? nebo zkus to vystipat z printf a prirad to nejdriv do promene :/ melo by to byt jedno ale clovek nikdy nevi. nebo zkus sinl() to pracuje s longdoublem
tezko rict, neams naborenej header file math.h? nebo zkus to vystipat z printf a prirad to nejdriv do promene :/ melo by to byt jedno ale clovek nikdy nevi. nebo zkus sinl() to pracuje s longdoublem
Jak jsem psal - zjednodusoval jsem ten prog i tak, ze jediny co mel udelat, bylo spocist do jedny promeny dat sin(0.5) Vyhodilo to stejou hlasku. :( ten sinl zkusim..
EDIT: ted jsem se jeste jednou dival do tgmath.h, tam je def. sin()
Tak jsem naincludoval tgmath, a co myslite, ze to vyhodilo?
undefined reference to 'sinf' -to f neni preklep, a v celym zdrojaku, ani tgmath.h se retezec sinf nevyskytuje. Tak uz jsem z toho vazne blbej.. :?:
tezko rict, neams naborenej header file math.h? nebo zkus to vystipat z printf a prirad to nejdriv do promene :/ melo by to byt jedno ale clovek nikdy nevi. nebo zkus sinl() to pracuje s longdoublem
Jak jsem psal - zjednodusoval jsem ten prog i tak, ze jediny co mel udelat, bylo spocist do jedny promeny dat sin(0.5) Vyhodilo to stejou hlasku. :( ten sinl zkusim..
EDIT: ted jsem se jeste jednou dival do tgmath.h, tam je def. sin()
Tak jsem naincludoval tgmath, a co myslite, ze to vyhodilo?
undefined reference to 'sinf' -to f neni preklep, a v celym zdrojaku, ani tgmath.h se retezec sinf nevyskytuje. Tak uz jsem z toho vazne blbej.. :?:
ja to vidim na preinstalovanie balikov gcc a glibc ;D ;D
Zkus to zkompilovat zde (online DJ'c compiler) :
http://www.delorie.com/djgpp/compile/
jde to bez problemu, mas to asi fakt nak blbe nainstalovany. Ma to spravne nastaveny cesty k include a lib souborum?
Kdyztak si rovnou stahni a nainstaluj cely DJGPP
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp
nebo MINGW32 pro widle
http://www.mingw.org
p.s. koorva kdy uz bude ta sekce programovani?
ja tam ten sin taky nemam ???
ale mam napad jak to obejit: sin(x) je prece cos(x-(PI/2))...no a ten cos() jeby mel byt v tgmath.h
oprava: odvolavam co jsem odvolal: staci program skompilovat s volbou -lm
(napr gcc -lm neco.c) ...sice nevim proc, programovani nerozumim, ale funguje to ;D
ja tam ten sin taky nemam ???
ale mam napad jak to obejit: sin(x) je prece cos(x-(PI/2))...no a ten cos() jeby mel byt v tgmath.h
oprava: odvolavam co jsem odvolal: staci program skompilovat s volbou -lm
(napr gcc -lm neco.c) ...sice nevim proc, programovani nerozumim, ale funguje to ;D
to je proto ze pomoci prepinace -l[knihovna] udavas cestu ke knihovne se kterou to hcces skompilovat. zrovna zde to je /lib/libm-xxx. tzn kdyz neco delas napr s podporou ncurces knihovny musis kompilovat gcc -lncurses neco.c.
2ktk: neni to zrovna tvuj prb?
ja tam ten sin taky nemam ???
ale mam napad jak to obejit: sin(x) je prece cos(x-(PI/2))...no a ten cos() jeby mel byt v tgmath.h
oprava: odvolavam co jsem odvolal: staci program skompilovat s volbou -lm
(napr gcc -lm neco.c) ...sice nevim proc, programovani nerozumim, ale funguje to ;D
to je proto ze pomoci prepinace -l[knihovna] udavas cestu ke knihovne se kterou to hcces skompilovat. zrovna zde to je /lib/libm-xxx. tzn kdyz neco delas napr s podporou ncurces knihovny musis kompilovat gcc -lncurses neco.c.
2ktk: neni to zrovna tvuj prb?
Taky moc nechapu proc, ale FUNGUJEE!! pochopil jsem z tvyho vykladu, co je -l, ale proc zrovna "m"?? Co znaci to m? v /usr/include/ zadnej adresar m neni..? Nebo co to ma byt?
Kazdopadne diky obema - jedik&lempour..
ja tam ten sin taky nemam ???
ale mam napad jak to obejit: sin(x) je prece cos(x-(PI/2))...no a ten cos() jeby mel byt v tgmath.h
oprava: odvolavam co jsem odvolal: staci program skompilovat s volbou -lm
(napr gcc -lm neco.c) ...sice nevim proc, programovani nerozumim, ale funguje to ;D
to je proto ze pomoci prepinace -l[knihovna] udavas cestu ke knihovne se kterou to hcces skompilovat. zrovna zde to je /lib/libm-xxx. tzn kdyz neco delas napr s podporou ncurces knihovny musis kompilovat gcc -lncurses neco.c.
2ktk: neni to zrovna tvuj prb?
Taky moc nechapu proc, ale FUNGUJEE!! pochopil jsem z tvyho vykladu, co je -l, ale proc zrovna "m"?? Co znaci to m? v /usr/include/ zadnej adresar m neni..? Nebo co to ma byt?
Kazdopadne diky obema - jedik&lempour..
nini , mluvim o souboru /lib/libm-x.x.x.so nebo tak nejak podobne (x.x.x je verze dane knihovny) a m znamena math (trochu matouci, ja vim, ale je to tak).
Dam este jednou priklad s temi ncurses (knihovna pro textove okynka apod.):
/lib/libncurses.so.5.2 -> odkrouhnes pismenka lib na zacatku a na konci si odmyslis to co je za teckou (pomlckou) vcetne a to co ti zbyte (tedy v nasem pripade slovicko ncurses) napises primo za parametr -l pri prekladu
-> gcc -lncurses neco.c
tot laicky receno vse :)
aha, vy ste si blbe nastavili linker...
nebo mate blbe cestu ke knihovnam.
Alespon me DJGPP linkuje matematickou knihovnu automaticky.
to gcc -lm rika, ze ma prilinkovat kod knihovny m, asi jako math. Soubor se bude jmenovat patrne "libm.a" nebo "libm.lib" v podadresari ../lib/
V *.h souborech jsou napsany jen hlavicky funkci, vlastni kod je v tech knihovnach, vetsinou *.a souborech. Pritom jmena hlavickovych souboru a knihoven spolu nemusi nijak souviset. Nevim jaky GCC pouzivas, ale v DOS/WIN se nastavuje promennou SET neco=path cesta do adresare s GCC odkud on vyhledava ty potrebne soubory...
bez problémů to funguje...
#include <math.h>
#include <iostream>
int main()
{
double x=sin(0.5);
std::cout << x;
}
o tomhle vis?
sin computes the sine of the input value. Angles are specified in radians
samozrejme, ze vim, dyt je to tak snad ve vsech jazykch, problem byl v necem uplne jinym.. :arrow: Teda pokud narazis na ty radiany..
samozrejme, ze vim, dyt je to tak snad ve vsech jazykch, problem byl v necem uplne jinym.. :arrow: Teda pokud narazis na ty radiany..
a uz ti to jede?
Jo tak to sory, sem si nejak prve nevsim...
Běží na vBulletin™ verze 4.0.3 Copyright © 2010 vBulletin Solutions, Inc. Všechna práva vyhrazena.