當鏈接到pthreads時,我在程序執行期間收到意外的行爲,ncurses接口變得沒有響應,但程序不會崩潰。這是沒有使用任何pthread功能,沒有線程頭或任何與線程相關的東西,只是連接。鏈接到pthreads的原因會導致程序行爲發生變化?
鏈接到庫的任何原因是否可以在不發出警告的情況下更改程序行爲?
相關信息:
- 的ncurses也與可執行文件。
- 一切都在命名空間中。
- 嘗試使用當前的gcc和clang。
- 沒有編譯器/鏈接器錯誤或警告使用-Wall。
- Arch Linux。
將ncurses和pthread連接在一起可以在我製作的一個較小的測試程序上正常工作。所以我在尋找更多的地方看看,這是一個庫項目,代碼庫是一個很好的大小,除了使用ncurses庫的一個小組件外,它都是普通的C++ 14。
最有可能你只是在你的代碼中有一些錯誤,pthreads是不相關的。或者你有與pthreads符號名稱衝突。但是由於您沒有提供[最小化,完整和可驗證示例](http://stackoverflow.com/help/mcve),因此無法猜測。你甚至沒有定義什麼「意外行爲」。 – VTT
這裏沒有傳感器......如果你沒有提供說明行爲和變化的代碼,沒有人能夠提供幫助。最有可能你的代碼包含UB – Swift
代碼庫很大,我真的不知道錯誤來自哪裏,意外的行爲是ncurses接口沒有響應,沒有崩潰。我擁有名稱空間中的所有內容,並且沒有符號名稱衝突警告/錯誤。 –