Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: Yuunus - 25 Ocak 2020, 23:22:25

Başlık: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 25 Ocak 2020, 23:22:25
Merhaba, Eclipse de asagidaki gibi bir kodu calistiramiyorum,

#include <stdio.h>
#include <stdlib.h>

#include "math.h"

float x,y;

int main(void) {

x = 3.134;

y = sinf(x);

printf("%f", y);

return EXIT_SUCCESS;
}


hata ise:"undefined reference sinf"

lakin sinf(1.234) gibi sabit bir sayiyi hesaplatirsan sorun yok ama hesaplama sonucunu bir degiskene atmaya kalksam hata veriyor.

y=sinf(1.234);//calisiyor
y=sinf(x);//calismiyor
sinf(x);//calisiyor


ve DevC++ da hicbir sorun cikmiyor
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: muhittin_kaplan - 25 Ocak 2020, 23:48:54
derleyici nedir hocam ?
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 25 Ocak 2020, 23:53:09
linux ustunde gcc
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: pwr_24 - 25 Ocak 2020, 23:55:59
Alıntı yapılan: digiman - 25 Ocak 2020, 23:22:25Merhaba, Eclipse de asagidaki gibi bir kodu calistiramiyorum,

#include <stdio.h>
#include <stdlib.h>

#include "math.h"

float x,y;

int main(void) {

x = 3.134;

y = sinf(x);

printf("%f", y);

return EXIT_SUCCESS;
}


hata ise:"undefined reference sinf"

lakin sinf(1.234) gibi sabit bir sayiyi hesaplatirsan sorun yok ama hesaplama sonucunu bir degiskene atmaya kalksam hata veriyor.

y=sinf(1.234);//calisiyor
y=sinf(x);//calismiyor
sinf(x);//calisiyor


ve DevC++ da hicbir sorun cikmiyor

y=sinf(float x) denermisiniz
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 00:01:10
@pwr_24  denedim yine ayni bu kezde hata : expected expression before 'float'
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: pwr_24 - 26 Ocak 2020, 00:12:03
https://www.gnu.org/software/libc/manual/html_node/Trig-Functions.html
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: SpeedyX - 26 Ocak 2020, 00:16:37
sinf(x) derler çünkü derlerken o satırı dikkate almıyor. Diğer şekilde fonksiyon math.h içinde yok, o yüzden derlemiyor.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 00:21:09
Alıntı yapılan: SpeedyX - 26 Ocak 2020, 00:16:37sinf(x) derler çünkü derlerken o satırı dikkate almıyor. Diğer şekilde fonksiyon math.h içinde yok, o yüzden derlemiyor.

peki printf("%f",sinf(x)); neden calisiyor o zaman hemde sonucu da dogru hesapliyor.Sorun hesaplanan degeri degiskene atama yapinca cikiyor.

pardon bunada kiziyor
lakin
#define x 3.134 yazip hesaplatirsam printf("%f",sinf(x)); calisiyor, ama x'i degisken olarak tanimlarsam hata veriyor, benimde sabit bir degeri degilde surekli degisen bir degerin sinf degerini hesaplamam gerekiyor.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: pwr_24 - 26 Ocak 2020, 00:47:32
Alıntı yapılan: digiman - 26 Ocak 2020, 00:21:09peki printf("%f",sinf(x)); neden calisiyor o zaman hemde sonucu da dogru hesapliyor.Sorun hesaplanan degeri degiskene atama yapinca cikiyor.

pardon bunada kiziyor
lakin
#define x 3.134 yazip hesaplatirsam printf("%f",sinf(x)); calisiyor, ama x'i degisken olarak tanimlarsam hata veriyor, benimde sabit bir degeri degilde surekli degisen bir degerin sinf degerini hesaplamam gerekiyor.
y=float sinf(x)
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 00:52:09
Alıntı yapılan: pwr_24 - 26 Ocak 2020, 00:47:32y=float sinf(x)
yok kardes bunlar calismiyor, zaten fonksiyonu cagirirken alacagi degerin ve dondurecegi degerin float oldugu belirtilmis ekstradan belirtmek birseyi degistirmiyor.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: z - 26 Ocak 2020, 01:40:16
sin(1.23) u hesapliyor fakat sin(x) hesaplamiyorsa bu isi islemci degil derleyici hesapliyordur.

Sacma bir sey.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: HAKKITANIR - 26 Ocak 2020, 01:42:37
atanacak değişkeni ve sinüs hesaplayıcının kabul edip, geri döndüreceği değerleri, birde double (işaretli) olarak tanımlasanız.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 02:03:41
win ta sorun yok ama linux ta kurulu eclipse de calismiyor garip gercekten, sanirim benim gcc de bir sorun var. Beles OS buraya kadar sanirim, gerci eclipse de beles ya.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: engerex - 26 Ocak 2020, 12:18:33
Ayarlardan C99 ve üzerini seçmeyi deneyin.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: pwr_24 - 26 Ocak 2020, 13:04:01
Alıntı yapılan: digiman - 26 Ocak 2020, 02:03:41win ta sorun yok ama linux ta kurulu eclipse de calismiyor garip gercekten, sanirim benim gcc de bir sorun var. Beles OS buraya kadar sanirim, gerci eclipse de beles ya.

hiçbir alaksı yok. Linux programlama için daha fazla tercih edilir. tamamıyla c sürümü ile alakalı "engerex" in  çözümünü dene istersen.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: muhittin_kaplan - 26 Ocak 2020, 19:00:41
(https://i.hizliresim.com/JVRkzn.png)
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 19:17:19
Alıntı yapılan: muhittin_kaplan - 26 Ocak 2020, 19:00:41(https://i.hizliresim.com/JVRkzn.png)
Bu nedir hocam, double deger mi aliyor diyorsun, tamam da build etmeden debug edip gorme sansim yokk ki.
@engerex, ayni hatayi verdi.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: muhittin_kaplan - 26 Ocak 2020, 19:58:16
Hocam eclipse(stmcubeide)+gcc+linux mint ile verdiğiniz kodu attım, derledim debug ile gözlemledim.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 20:04:11
hocam ben de mint kullaniyorum hem eclipse kurulu hemde atollic, ikisinde de denedim kod calismiyor, siz de calisiyor mu? Ne alakadir anlamadim ayni kodlar win 10 da ki eclipse de ve atollic de calisiyor, bildigim kadariyla win 10 kurulu eclipse vs de de gcc kullaniyor.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: muhittin_kaplan - 26 Ocak 2020, 20:07:45
siz debug ile mi takip ediyorsunuz ?
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 20:11:45
hayir, build edip eclipse in internal console da calistiriyorum, zaten build asamasinda hata veriyor derleyemiyorum diye.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: muhittin_kaplan - 26 Ocak 2020, 20:16:14
printf i kaldırıp deneyiniz

printf de aşağıdaki problemi alıyorum. zaten sprintf,printf ile alakalı özellikle float da problem olabilir
(The float formatting support is not enabled, check your MCU Settings from "Project Properties > C/C++ )
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: brandice5 - 26 Ocak 2020, 20:24:10
Matematik fonksiyonların kullanılabilmesi için "math.h" dosyasını include etmek yeterli değildir. Linker'e de -lm parametresi ile haber verilmelidir.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 20:32:05
hocam float destegini sprintf icin zaten sonradan ben ekledim, onu eklemeyince float tipi zaten hic tanimiyor,printf'i kaldirdim sadece y=sinf(x); yazdim undefined symbol referece hatasi veriyor.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 26 Ocak 2020, 23:18:17
Alıntı yapılan: brandice5 - 26 Ocak 2020, 20:24:10Matematik fonksiyonların kullanılabilmesi için "math.h" dosyasını include etmek yeterli değildir. Linker'e de -lm parametresi ile haber verilmelidir.
Win 10 da kurulu iki ayri editorde ayni kodu calistirdim diyorum, linker'a herahangi bir bildirim de yapilmadi, deneyebilirsin.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: brandice5 - 26 Ocak 2020, 23:37:42
Bazı IDE'ler libm yi default olarak link options a ekler.
Ayrıca C++ runtime (libstdc++) libm gerektirdiği için C++ olarak derlenen projelerde de libm otomatik olarak eklenir.

O zaman koy Makefile'ını bakalım.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 27 Ocak 2020, 00:08:31
################################################################################
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include src/subdir.mk
-include subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables

# All Target
all: deneme

# Tool invocations
deneme: $(OBJS) $(USER_OBJS)
[member=36599]ECHO[/member] 'Building target: $@'
[member=36599]ECHO[/member] 'Invoking: GCC C Linker'
gcc  -o "deneme" $(OBJS) $(USER_OBJS) $(LIBS)
[member=36599]ECHO[/member] 'Finished building target: $@'
[member=36599]ECHO[/member] ' '

# Other Targets
clean:
-$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) deneme
-[member=36599]ECHO[/member] ' '

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets

Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: brandice5 - 27 Ocak 2020, 00:29:01
Bu IDE tarafından otomatik oluşturulmuş bir Makefile ve diğer birçok Makefile'ı da include etmiş.
Dolayısıyla sadece bu dosyadan linker options nedir anlaşılmıyor.
$(LIBS) değişkeninin neleri içerdiği görmek lazım.
Ama benim tahmin ettiğim gibi derleyici olarak g++ değil gcc kullanılmış.
Yani demek oluyor ki libm yi elle linker options'a eklemeniz lazım.
Ya da derleyiciyi değiştirip g++ yapın.
Bunu da bu Makefile da yapamazsınız çünkü her derlemede sizin yazdıklarınız uçar gider.
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 27 Ocak 2020, 00:53:29
@brandice5 tam olarak nereye ne eklememi istedigini yazabilirmisin.
 
Başlık: Ynt: Eclipse, sinf() fonksiyonu calismiyor.
Gönderen: Yuunus - 01 Şubat 2020, 15:34:37
@brandice5 haklisin her tarafta gcc yaziyormus ben proje stresinden farkedemiyor musum sanirim g++ yazinca hepsi duzeldi, yordum sizleri kusura bakmayin, hepinize tesekkur ederim.