自己在debug下成功運行了自己寫的測試自己寫第三方庫的程序,,這里有用到opencv庫,所以同時用到了自己的庫和opencv的庫,,需求因為要進行速度的測試,,是想要把debug改成release版本,這里出現(xiàn)了錯誤改了一天,,終于搞定,。 這里遇到的錯誤及解決方法如下: 問題一:出現(xiàn)如下所示錯誤。 問題二:錯誤 77 error C1189: #error : Please use the /MD switch for _AFXDLL builds C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afxver_.h 81,。 問題三:出現(xiàn)自己導出的第三方庫出現(xiàn)問題,,說未實行定義,看著像只聲明未定義的問題,。 下面一一來說明自己最后成功解決的辦法: 一,、錯誤一是由于筆者寫的動態(tài)庫時運行庫是MT(不懂的可以搜索一下),但調(diào)用程序是MD,說是因為運行庫不匹配造成的,。即一個程序中混合了不同的運行時庫(靜態(tài)庫和動態(tài)庫,,調(diào)試庫和非調(diào)試庫),可能會產(chǎn)生沖突,,所以一個程序中應(yīng)該使用相同的運行時庫,。 二、這個原因是因為可能你使用項目默認值MFC選項的時候,,使用了dll共享功能(在共享DLL中使用MFC),,而你的程序中使用了靜態(tài)庫版本導致,可以把在共享DLL中使用MFC改成在靜態(tài)庫中使用MFC來改正(注意這時你lib庫也要是static版本的),。 三,、在筆者遇到這個問題時也很納悶,,明明定義了而且實現(xiàn)了函數(shù),但是還提示類似為實現(xiàn)的錯誤,;后來發(fā)現(xiàn)時因為我的實現(xiàn)實在頭文件中,,也就是類里面實現(xiàn)的,inline函數(shù),,貌似在類里面實現(xiàn)不可以,,要把實現(xiàn)放到cpp里面,這樣就可以了,。原因自己還不知道,,猜測可能是在頭文件中給出的是聲明,而dll是用cpp生成的,,沒有實現(xiàn),,所以在lib找地址時找不到。有知道的同學可以共享下,,謝謝,。 共勉! |
|