libdrm.hで定義した関数tester-1.cをlibdrm.cで実装しました。 3つのファイルは同じフォルダにあり、pthread関数を使用します。GCC:どうすればこのコンパイルとリンクができますか?
ファイルがある彼らの含まれます:
libdrm.h
#ifndef __LIBDRM_H__
#define __LIBDRM_H__
#include <pthread.h>
#endif
libdrm.c < - tehのメインを持っている - 何のメイン()
#include <stdio.h>
#include <pthread.h>
#include "libdrm.h"
テスター-1.C <を持っていません()
#include <stdio.h>
#include <pthread.h>
#include "libdrm.h"
libdrm.cのためのコンパイラエラーは言う:テスター-1.Cため
gcc libdrm.c -o libdrm -l pthread
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
とコンパイラのエラーは言う:
gcc tester-1.c -o tester1 -l pthread
/tmp/ccMD91zU.o: In function `thread_1':
tester-1.c:(.text+0x12): undefined reference to `drm_lock'
tester-1.c:(.text+0x2b): undefined reference to `drm_lock'
tester-1.c:(.text+0x35): undefined reference to `drm_unlock'
tester-1.c:(.text+0x3f): undefined reference to `drm_unlock'
/tmp/ccMD91zU.o: In function `thread_2':
tester-1.c:(.text+0x57): undefined reference to `drm_lock'
tester-1.c:(.text+0x70): undefined reference to `drm_lock'
tester-1.c:(.text+0x7a): undefined reference to `drm_unlock'
tester-1.c:(.text+0x84): undefined reference to `drm_unlock'
/tmp/ccMD91zU.o: In function `main':
tester-1.c:(.text+0x98): undefined reference to `drm_setmode'
tester-1.c:(.text+0xa2): undefined reference to `drm_init'
tester-1.c:(.text+0xac): undefined reference to `drm_init'
tester-1.c:(.text+0x10e): undefined reference to `drm_destroy'
tester-1.c:(.text+0x118): undefined reference to `drm_destroy'
これらのすべての機能がlibdrm.cで定義されている
これらのファイルをコンパイルしてリンクするためにgccコマンドを使用する必要はありますか?
二重先頭アンダースコア(および単一の先頭アンダースコアと大文字の後に続く)は、実装のために予約されています。このような名前は自分では使わないでください。 – delnan