[問題] 使用不同VC build的static library 疑問
大家好,
目前遇到一個卡了許久的問題
我網路上抓了一包別人寫的solution
他有提供 2008 & 2010 VC的專案,
都用同一份code
他們build出來都是static lib
我開了一個2010的Console專案想寫測試程式
我用2010版的lib, compile OK
但我用2008版的lib, compile會出現一大堆unresolved external symbol...
因為對於build lib這塊 並不是很熟
所以我只能用人眼diff的方式
把project setting 兩個版本的比對一次
盡量都改成一樣
卻還是無法解決此問題@@
幾個問題如下
1. 會遇到這問題是不是本來就"不能"一版lib 相容多種版本的VC專案
....粗淺的猜測是不是不同版本的VC 他對function的mangling不一樣
所以用舊的lib 他認不到定義是理所當然的(mangling方式不同)?
(觀念不好, 這樣看來compiler是先看到.h的宣告 作mangling後 再去lib找同樣
signature的定義??)
2. 有些setting選項 default是空白 但他可以選Yes / No,
那他到底預設是Yes還是No呢?
3. 這兩個版本build出來的lib 大小有所差距 2008的小了八百多KB..
這可能是正常, 但如果1.的假設成立~有沒有辦法克服, 用一版VC build出的lib
甚至 dll 可以for多個平台使用?
以我的1.的觀念可能就要全部都灌上extern "C" 不要compiler做手腳??
但是我不知道extern "C"對 C++ 的 class 甚至裡面有virtual之類的 有沒有作用
不好意思問了一些也許很蠢的問題
找了一些資料也沒有甚麼頭緒
煩請各位指教
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.147.15.66
→
01/19 13:15, , 1F
01/19 13:15, 1F
→
01/19 13:17, , 2F
01/19 13:17, 2F
→
01/19 14:35, , 3F
01/19 14:35, 3F
→
01/19 14:35, , 4F
01/19 14:35, 4F
→
01/19 14:36, , 5F
01/19 14:36, 5F
→
01/19 15:01, , 6F
01/19 15:01, 6F
→
01/19 18:46, , 7F
01/19 18:46, 7F
→
01/19 22:00, , 8F
01/19 22:00, 8F
討論串 (同標題文章)