Re: [問題] Qt的shared lib

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/04/01 17:16), 編輯推噓10(10019)
留言29則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《legnaleurc (CA)》之銘言: : 這幾天嘗試把某個作品 port 到 Windows 上 : 我把其中一個部分分離出來變成 shared lib : 在 Linux 上可以直接 link *.so : 但是在 Windows 上用 VC 編譯 : 老是不會生成 *.lib , 只有 *.dll : 偏偏 VC 的 linker 只能連 *.lib : 請問是專案那裡還要設定什麼嗎? 你的 symbol 要加上 __declspec(dllexport) 如下: __declspec(dllexport) void SomeFunc() { ... } __declspec(dllexport) int SomeVar; 這樣這些 symbol 才會輸出到 .lib 中 你應該是少做了這步 以致於 VC 找不到要 export 的 symbol,乾脆就不生 .lib 了 另外你的 client code 必需用 __declspec(dllimport) 來宣告 symbol 如下: // XXX.h __declspec(dllimport) void SomeFunc(); __declspec(dllimport) int SomeVar; Windows 上寫程式很麻煩滴 : PS: : 不要問我為什麼不用 MinGW, 我有試過, 遭遇了不少挫折 OTZ : IDE的話, QtCreator和VC都試過, 用的都是 cl + link 什麼挫折? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2

04/02 00:31, , 1F
這...= = 那如果是class呢?
04/02 00:31, 1F

04/02 00:31, , 2F
我有點想放棄Windows了....
04/02 00:31, 2F

04/02 00:32, , 3F
挫折都是在建立編譯環境上(Loki,Boost,FFMpeg等)
04/02 00:32, 3F

04/02 00:32, , 4F
還有一些thread的lib,我自己本身的程式反而要改的地方
04/02 00:32, 4F

04/02 00:33, , 5F
很少
04/02 00:33, 5F

04/02 06:43, , 6F
class的export是 class DLLIMPORT ClassName{ ... }
04/02 06:43, 6F

04/02 06:43, , 7F
只需要這樣寫 class的member function就會匯出
04/02 06:43, 7F

04/02 06:44, , 8F
DLLIMPORT是在dll專案的巨集
04/02 06:44, 8F

04/02 09:08, , 9F
l大,boost不用自己編。這邊就可以抓編好的:
04/02 09:08, 9F

04/02 09:08, , 10F
04/02 09:08, 10F

04/02 09:53, , 11F
剛才發現BoostPro installer 1.38似乎有bugs,一開始有一個對
04/02 09:53, 11F

04/02 09:56, , 12F
話框會問你要用哪一種compiler與linking型態。但選了無效果。
04/02 09:56, 12F

04/02 09:56, , 13F
我已經回報這個bug,等待回覆中。
04/02 09:56, 13F
※ 編輯: littleshan 來自: 61.217.32.52 (04/02 10:36)

04/02 10:54, , 14F
我還以為只有我鬼打牆 選了一次還要再一個個勾選 XDD
04/02 10:54, 14F

04/02 11:02, , 15F
遇到有bug就回報吧,可以練練英文。不過回報工作還滿累人的
04/02 11:02, 15F

04/02 11:02, , 16F
。(拖人下水 XD)
04/02 11:02, 16F

04/02 11:04, , 17F
回報bug算一種慈善事業,麻煩自己、造褔後人。
04/02 11:04, 17F

04/02 12:08, , 18F
我一直以為那個boost的installer只能用在VC上...orz
04/02 12:08, 18F

04/02 12:09, , 19F
然後一直搞不清楚 msys, MinGW, CygWin 之間的關係
04/02 12:09, 19F

04/02 12:10, , 20F
我覺得他們把事情弄得好複雜= =
04/02 12:10, 20F

04/02 12:14, , 21F
l大,那個boost installer不是本來就用在VC上!?
04/02 12:14, 21F

04/02 12:17, , 22F
所以說當初我的困難是發生在MinGW上...說明頁好像還
04/02 12:17, 22F

04/02 12:18, , 23F
說不官方支援MinGW ... ?
04/02 12:18, 23F

04/02 12:19, , 24F
然後某些Loki不知道為什麼用MinGW編就會硬選pthread
04/02 12:19, 24F

04/02 12:20, , 25F
真的很煩,光搞這些就飽了
04/02 12:20, 25F

04/02 12:21, , 26F
s/某些// typo
04/02 12:21, 26F

04/02 12:48, , 27F
了解了,原來你想在Windows上用MinGW,但要自己編boost很麻煩
04/02 12:48, 27F

04/02 13:06, , 28F
編boost不難吧 只是花時間
04/02 13:06, 28F

04/02 23:47, , 29F
http://0rz.tw/0GRgd 我編過 初步測試是OK的
04/02 23:47, 29F
文章代碼(AID): #19qp3G3p (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #19qp3G3p (C_and_CPP)