2016-08-04 6 views
1

基本的に私の実行可能ファイルが共有ライブラリとしてlibpthreadを持っているのを知りたいのですが、私のコードはどんなスレッド機能も全く使用していません。それはmakefileからも含まれていません。それはGCCがデフォルトで "--enable-threads = posix"でコンパイルされているからですか?Linux - 実行ファイルに共有ライブラリとしてlibpthreadがあるのはなぜですか?

実行可能ファイルから削除する方法はありますか?問題がなければどうしますか?

LDD

linux-vdso.so.1 => (0x0000656150c5a000) 
    librt.so.1 => /lib64/librt.so.1 (0x0000656150a4c000) 
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000656150746000) 
    libm.so.6 => /lib64/libm.so.6 (0x00006561504c1000) 
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00006561502ab000) 
    libc.so.6 => /lib64/libc.so.6 (0x000065614ff17000) 
    libpthread.so.0 => /lib64/libpthread.so.0 (0x000065614fcf9000) 
    /lib64/ld-linux-x86-64.so.2 (0x0000656150c5b000) 

Makefileの

CC = gcc 
OFLAGS = -O3 

C++ = g++ -g 
LFLAGS = -lrt 

# API Exclusions 
DFLAGS = -DNO_ZLIB -DNO_LOCALIZATION -DNO_INTERFACE 

CFLAGS = $(OFLAGS) $(DFLAGS) -I. -I../rgapi/include/core/ -I../rgapi/include/public/ 

OBJS = (... list of .o files ...) 
PROGS = ./rgs 

all: $(OBJS) $(PROGS) 

./rgs: $(OBJS) 
    $(C++) -o ./rgs $(OBJS) $(LFLAGS) 

clean: 
    rm -f $(OBJS) $(PROGS) 

$(OBJS): %.o: %.cpp 
    $(C++) -o [email protected] $(CFLAGS) -c $< 

./rgs: $(OBJS) 

答えて

4

あなたはlibrt.soとリンクされています

LFLAGS = -lrt 

これは間接的な依存関係です。

$ ldd /usr/lib64/librt.so 
    linux-vdso.so.1 (0x00007ffcc33d2000) 
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2480a0b000) 
    libc.so.6 => /lib64/libc.so.6 (0x00007f2480649000) 
    /lib64/ld-linux-x86-64.so.2 (0x0000562f4cffb000) 

librt.so-lpthreadとリンクされています。共有ライブラリとリンクする場合は、共有ライブラリがリンクされているすべての荷物を継承します。

「実行ファイルから削除する」ことはできません。そうする唯一の方法は-lrtとのリンクではありません。

+0

ああ、真剣に...私はそれが依存としてlibpthreadを持っていないと思ったので、私はlibrtをチェックしなかった。大丈夫です...私はリンクします-lrtメインループの間隔の更新の時間をexeが測定するため。 間隔を測定できる代替手段はありますか?通常、clock_gettimeを使用することなく、更新ループの50msの範囲で、librtをリンクします。これは私が今やっていることです。 –

+0

'gettimeofday()'で十分です。 –

+0

私は時間の更新について心配する必要があるかどうかも知っていたのでしょうか?ゲームサーバーで使用されているので、私は常にCLOCK_MONOTONICを使用しました。私は更新間隔と接続がタイムアウトしたでる。数秒間のジャンプでさえ本当に悪いことがあります。私はNTPサービスを無効にする必要がありますか、これについて心配する必要はありませんか? –

関連する問題