2012-01-10 99 views
0

編輯:重複的C++ template, linking error外部庫用C

感謝博,這是我有同樣的問題!

我在Windows 7 x64上使用Cywgin和NetBeans 7.1。

我有一個NetBeans項目設置爲靜態庫,所有用C++編寫的代碼。

當我將此庫項目包含在另一個NetBeans項目中幷包含庫中相應的頭文件時,鏈接程序無法找到庫中的類/函數。

任何想法我做錯了什麼?

+0

可能的[C++模板,鏈接錯誤]的副本(http://stackoverflow.com/questions/1353973/c-template-linking-error) – 2012-01-10 16:17:38

+1

使用模板需要在頭文件中包含定義,所以編譯器可以看到它們。 – 2012-01-10 16:19:24

回答

0

這個ptr類是在第一個靜態庫中編譯的,只有* .h作爲第二個接口可用?如果是,那麼在第一個庫模板中,ptr不是用int類型創建的,這種構造函數/析構函數不在那裏,所以你可以在第二個庫中使用它。

處理這個問題的最簡單方法是包含ptr.cpp並將其編譯到第二個庫中。這將允許在編譯期間爲int類型創建模板代碼。 另一種解決方案是以某種方式在這個第一個庫中使用帶有int類型的ptr模板,以便它在那裏創建。