SORU
10 HAZİRAN 2009, ÇARŞAMBA


uyarı: yerleşik işlevinin örtük bildirimi ‘xyz’uyumsuz

Birkaç ikili derlerken bu uyarılar bir dizi alıyorum:

warning: incompatible implicit declaration of built-in function ‘strcpy’
warning: incompatible implicit declaration of built-in function ‘strlen’
warning: incompatible implicit declaration of built-in function ‘exit’

Bu sorunu çözmek için denemek için ekledim

#include <stdlib.h>

aşağıdaki bayraklar ile derleme ek olarak C dosyaları bu uyarı ile ilişkili üstünde:

CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc

GCC 4.1.2 kullanıyorum:

$ gcc --version
gcc (GCC) 4.1.2 20080704

Ben bu uyarıları gidermek için ne yapmalıyım?

CEVAP
10 HAZİRAN 2009, ÇARŞAMBA


C, daha önce bildirilmemiş bir işlevi kullanarak işlevinin örtük bildirimi oluşturmaktadır. Örtülü bir bildiride, dönüş türü eğer doğru hatırlıyorsam int. Şimdi, GCC yerleşik bazı standart fonksiyonlar için tanımları var. Eğer örtülü bir beyan yerleşik tanımına uyuyor mu bu size bir uyarı olsun.

Sorunu düzeltmek için onları kullanmadan önce fonksiyonları var; normalde uygun başlığı da dahil olmak üzere. Mümkünse-fno-yerleşik-* bayraklar kullanmamanızı öneririm.

Stdlib yerine.h, denemelisiniz

#include <string.h>

strcpy strncpy en az strcpy(2) man sayfasına göre tanımlanır.

exit Bu işlev stdlib tanımlanır.h yine de, bu yüzden orada neler olup bittiğini bilmiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • nemoking of kinges

    nemoking of

    4 EYLÜL 2009