其編譯,我們用gcc象下面這樣一個多線程程序:_REENTRANT標誌是什麼?
gcc -lpthread -D_REENTRANT -o someprogram someprogram.c
究竟是什麼標誌-D_REENTRANT
做在這裏?
其編譯,我們用gcc象下面這樣一個多線程程序:_REENTRANT標誌是什麼?
gcc -lpthread -D_REENTRANT -o someprogram someprogram.c
究竟是什麼標誌-D_REENTRANT
做在這裏?
它只是爲預處理器定義_REENTRANT。在相關代碼中的某處,您可能會在至少幾個地方找到#ifdef _REENTRANT
或#if defined(_REENTRANT)
。
還要注意名稱「_REENTRANT:」在實現者的名稱空間中(任何名稱以下劃線開頭,後面跟着另一個下劃線或大寫字母),因此定義它意味着您已經超出了標準定義的範圍至少在C或C++標準)。
你能否更具體一些。可以舉一個例子來幫助我更好地理解。 – Vijay 2010-04-09 07:13:09
定義_REENTRANT導致編譯器使用線程安全的(即折返)在C庫中的幾個功能的版本。
你可以搜索你的頭文件,看看有什麼當它被定義時發生。
Duplicate:http://stackoverflow.com/questions/875789/gcc-do-i-need-d-reentr螞蟻與pthreads – 2010-04-08 16:43:56
這不是一個真正的重複。鏈接的問題是在傳遞-pthread時詢問-D_REENTRANT是否是多餘的;這個問題詢問了-D_REENTRANT有什麼影響(無論是明確傳遞還是由-pthread隱含)。 – 2010-12-19 23:52:59