gbase导入sql文件_Gbase配置
喵了個咪的。到目前為止,自己已經用過SQL SERVER,My SQL,Oracle,SQLite,加上南大通用GBASE 五種數據庫了。雖然每種都用的不深
注:GBASE提供了C的API,查看手冊即可。不支持string。
用C++配置GBASE:
對方提供了32位和64位windows下的庫。
在程序中添加 gbase.h errmsg.h 兩個頭文件 ,導入gbaseclient.lib libgbase.lib 兩個lib文件,再添加libgbase.dll
完畢。
但是出現了一堆 error LNK2005的問題,大概是說:
原來會發生這些奇怪的錯誤狀況,是因為程序同時鏈接了 LIBCMTD.lib與MSVCRTD.lib而造成函數定義版本沖突。也就是說,程序鏈接器已經在其中一個 CRT的版本中找到所需的函數定義,但此時卻又跳出另外一位 CRT,也給了一份相同函數的實現版本,所以鏈接器無法判斷應該忽略誰并且選擇誰。
參考網址:http://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/01/2889668.html
這個網址說的很詳細,方便概念理解,但是按照這種方法不能夠實現。
關鍵詞:程序庫、CRT、LIBCMTD.lib、MSVCRTD.lib、鏈接庫的沖突問題、MSVC鏈接處理
閱讀前需要對靜態庫(.lib)、動態庫(.dll)、導入庫(這個還是.lib)之間的區別聯系有了解。建議先讀讀宋寶華先生的《VC++動態鏈接庫(DLL)編程深入淺出 》
其實我也不懂。馬克一下這本書。最近碰到dll的問題太多了,真的該看一下。
我的解決方法:
1. 屬性-C/C++ - 代碼生成-多線程調試(MDd)。因為我是debug下。
2.屬性-- 鏈接器(Linker) .忽略特定默認庫 libcmt.lib
3.屬性-清單文件-生成清單-否
注:有個很屌的操作,剛學會的。
在“項目 -> 屬性 -> 鏈接器 -> 命令行”欄中,輸入 /verbose:lib編譯參數,這樣,就可以在output窗口看到鏈接時搜索的庫的先后順序,對于本問題,你一定可以看到lib的調用順序
總結
以上是生活随笔為你收集整理的gbase导入sql文件_Gbase配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA求哈希码
- 下一篇: 浅谈kvm切换器安全性