亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩份相同C/C++全局變量鏈接沒問題,運行崩潰的問題

兩份相同C/C++全局變量鏈接沒問題,運行崩潰的問題

iOS
慕的地8271018 2019-01-02 11:22:11
最近用過了 GPUImage 做美顏功能,為了防止沖突把里面的類名改了,但是有些全局的變量沒有注意到,沒有改名。我們做的是SDK靜態庫,結果我把庫給出去后,第三方也用到了GPUImage,編譯鏈接的時候并沒有報沖突,但是程序跑起來的時候掛掉了。后來跟了一下,奔潰原因如下://下面的數組是個全局變量// BT.709, which is the standard for HDTV.const GLfloat kColorConversion709[] = {    1.164,  1.164, 1.164,    0.0, -0.213, 2.112,    1.793, -0.533,   0.0, };在另外一個文件中用extern引用extern const GLfloat kColorConversion601[];使用該值得地方,夾斷點調試,正常 _preferredConversion 賦值后為 1,有問題的時候,從kColorConversion601 內存拿不到值,訪問內存崩潰:_preferredConversion = kColorConversion601;問題:上面說的全局變量,在SDK中一共有兩份,沒有編譯鏈接錯誤,這是什么原因,能說下具體編譯鏈接的過程嗎?猜想是有兩份相同變量,去找變量的時候地址錯誤了,這個過程具體是怎樣的,很想知道如果調整下庫的鏈接順序,奔潰的問題可以解決,感覺挺奇怪的希望了解到朋友給講一下,雖然問題找到了,也解決了,但是很想知道為什么?### 問題描述問題出現的環境背景及自己嘗試過哪些方法相關代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)你期待的結果是什么?實際看到的錯誤信息又是什么?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 550 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號