2
我具有以下Qt工程結構:如何讓qt不忽略方法?
靜態庫#1
public class LibraryClass
{
public int Test();
}
靜態庫#2(參照庫#1)
void SomeMethod()
{
...
x = library1Instance.Test();
...
}
可執行文件(參考庫#1和庫#2)
void SomeOtherMethod()
{
...
library2Instance.SomeMethod();
...
}
庫#1和庫#2 comp沒有錯誤。但是當我試圖編譯可執行文件時,出現錯誤「未定義對LibaryClass :: Test()的引用」。這意味着libary#1鏈接沒有LibraryClass :: Test()方法。
如果我在庫#1中創建另一個類,並將該類引用到LibaryClass :: Test()方法,則所有內容都將編譯。
據我所知,編譯器省略了方法LibaryClass :: Test(),因爲它不能找到它的內部引用。所以,我應該以某種方式將其標記爲出口或其他方法。我該怎麼做?
你究竟如何鏈接程序?該命令對靜態庫非常重要:#1必須在#2後解決依賴關係。 –
如何檢查鏈接順序?我正在使用Qt Creator。我能找到的只有libarary#1和#2的地方是executable.pro文件(這是我參考這些庫的地方) – developer
是的,看來我應該將庫#1引用放在.pro文件的最後。謝謝,邁克! – developer