2010-05-08 65 views
0

我的可執行文件需要運行zlib1.dll如何將zlib1.dll合併到C中的可執行文件中?

我需要將它們連在一起。

如何將它合併到可執行文件中以節省麻煩?

我正在使用cmake來構建可執行文件。

UPDATE

zlib1.dll不是直接由我PROGRAME包括在內,但libpng14-14.dll(一個DLL的GTK束)

回答

1

這聽起來像你想使你的程序不靜態鏈接要求要求存在zlib1.dll才能運行。但是zlib1.dll是一個動態鏈接庫(這是DLL代表!),所以你不能靜態鏈接它。你需要做的第一件事是找到這個庫的一個靜態版本。在Windows上,它通常會以.lib擴展名結尾。

我對cmake不熟悉,所以我會讓別人回答關於如何讓cmake使用靜態庫的問題的一部分,一旦你們都有了。

+0

如果cmake不是必需的,你會怎麼做? – httpinterpret 2010-05-08 15:32:21

+0

取決於你的編譯器。 – 2010-05-08 17:06:24

1

對不起,沒有辦法混合它。要麼靜態地要麼動態地編譯和鏈接。我試過了 - 它不起作用。

因此,如果libpng.dll需要zlib.dll,則不能將zlib變成靜態庫。您還必須將libpng編譯爲靜態庫。

我已經做了幾次,來自PNG,ZLIB(以及JPEG,TIFF圖像格式庫)的makefile非常好。如果你需要30分鐘以上才能確定要做什麼,那麼你應該把它看作是一個關於C Makefile技能的良好培訓。

+0

我不知道zlib1.dll是否通過'LoadLibrary'或一個加載庫鏈接。如果是後者,那麼它可以被修復。 – httpinterpret 2010-05-08 16:11:21

相關問題