我在Ubuntu 10.04使用GCC,我想用宏TEMP_FAILURE_RETRY如下所述:TEMP_FAILURE_RETRY和__USE_GNU
http://www.gnu.org/s/hello/manual/libc/Interrupted-Primitives.html
然而,當我編譯我得到了以下錯誤:
undefined reference to `TEMP_FAILURE_RETRY'
我看着在unistd.h中,其中宏被定義,它是由前面:
#ifdef __USE_GNU
如何讓我的代碼編譯和使用這個宏?我可以簡單地在我的代碼中使用相同的#ifdef __USE_GNU來包裝它嗎?
好的,所以我只需要將_GNU_SOURCE定義爲一個值?但是,這將使它依賴於GNU,有沒有什麼辦法讓我的代碼使用宏,如果它在編譯時可用,但如果沒有它,編譯沒有它? – SlappyTheFish
如果使用Ubuntu,我想你可以確定GNU將被使用,所以你可以安全地定義它...... – Macmade
好吧,但理想情況下,我希望代碼是可移植的,至少適用於所有類型的Linux。 – SlappyTheFish