1
brk(2)
を使用してmalloc()
の独自の調査実装を作成しています。しかし、私はLinuxのミント17.2上のgcc 4.8.4を使用してコードをコンパイルしようとすると:私はgccでbrk()/ sbrk()を使用する方法
zalloc.c:30:2: error: implicit declaration of function ‘sbrk’ [-Werror=implicit-function-declaration]
:
gcc -g -O0 -std=c99 -Wall -Werror -pedantic zalloc.c -c -o zalloc.o
私はエラー「機能BRKの暗黙的な宣言」を持っています既に使用中です
#include <unistd.h>
brk()
を使用するファイルにあります。
特定のライブラリを-l
または-L
にリンクする必要がありますか?
Since glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
Before glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
それは(BRKを使用するためにこれらのマクロのいずれかを定義することが必要である):man brk
では、glibc向けのFeature Test Macro requirements
に不可解な言及はありますか?
はい、明らかです。 – Boiethios
また、 '-std = gnu99'でgccを起動することもできます。 – EOF
@EOFこれは正しい答えです。今すぐ動作します。あなたはそれを答えにして、私はそれをアップヴォートするでしょう。 –