ODB踩坑——LNK2019+LNK1120+LNK2001

環境:Visio studio 2017;框架:ODB;語言:C++

C++使用ODB框架連接MSSQL數據庫時,照着網絡教程,也查閱了ODB的文檔(https://www.codesynthesis.com/products/odb/doc/manual.xhtml#2.1),發現仍然會報錯,錯誤內容都是“無法識別的外部符號”,報錯同時出現LNK2019+LNK1120+LNK2001。

由於能夠正常跑(odb-examples-2.4.0)內的例子,而且我也配置好了ODB的連接以及其他內容——包括包含文件,.lib和.dll文件的編譯,也確保了項目配置好能正常尋找到對應文件,因此確定是某些配置文件中隱含的、相關文檔沒有指出的東西影響了編譯。

    確定出錯原因:(odb-examples-2.4.0)內的例子隱含的某項配置。

解決方法:經過一項一項比較配置,得到解決方法:

1、第一步,找到你的實體模型生成的(實體數據模型名-odb.cxx)文件,有鍵,選中屬性。

注意:這裏需要是選中單個(實體數據模型名-odb.cxx)文件,設置屬性。這個(實體數據模型名-odb.cxx)文件,對應回(odb-examples-2.4.0)內的例子《hello》就是person-odb.cxx。

2、

第二步,對該(實體數據模型名-odb.cxx)文件,設置其預編譯頭爲“不使用預編譯頭”。

注意:不能整個項目的屬性選擇“不使用預編譯頭”,否則你引入的其他庫其他框架很可能會報錯!

最後,正常編譯,成功運行。

PS:以上解決方法是針對——項目debug和活動平臺類型已經正確對應了odb-d-2.4-vc12.dll和odb-(數據庫名)-d-2.4-vc12.dll;項目的屬性配置已經正確添加了包含目錄和庫目錄;確認ODB生成文件正確 的情況。在確保這些基本配置正確時,確認.lib和.dll沒問題時,仍然出現“找不到外部符號”時,才用以上方式試試。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章