iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
Software Development

C++ 套件管理器求生指南 Conan vs Vcpkg系列 第 16 篇

D16:conan create 成功,套件就能用了嗎?談 test_package 的用途

  • 分享至 

  • xImage
  •  

前一天我們建立第一個Conan包: hello/1.0

但是我其實打包的過程中,有許多地方可能會犯錯,導致打包出來的套件有BUG。

我們就來看看哪裡可能出錯,又要怎麼預防。

conan create 成功,不代表套件能用

比如說 的 hello/。這次故意把 package_info 那行寫錯:

    def package_info(self):
        self.cpp_info.libs = ["helo"]

hello 拼錯字,少了一個 l。

我們執行 conan create .,結果:

package(): Packaged 1 '.h' file: hello.h
package(): Packaged 1 '.lib' file: hello.lib
Full package reference: hello/1.0#038a8f5a89c7b029e6d93b0433c4691f:7045716a28efb7b0ef7ebf95fb54279df62f8ee7#e9e556b9ac2a0861e2ae9785cef4e051

打包成功了,沒有出現錯誤。但是字拼錯了欸,怎麼辦?

conan create 只負責編譯、打包,這兩件事都正常。

什麼時候才會發現錯誤呢?因為拼錯字的 package_info 是寫給「使用者」看的,所以要等到有人 requires 這個套件(通常是你的同事)時才會被讀到。也就是說,這個錯會在同事的機器上爆開,同事會跑過來跟你說,你這套件怎麼有問題?


上一篇
D15:自己打包第一個 Conan 套件
下一篇
D17:自己定義 Conan options,編譯套件也能選配
系列文
C++ 套件管理器求生指南 Conan vs Vcpkg 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言