我有一個包含函數聲明的頭文件,我們稱之爲A.h,我在文件A1.cpp中實現了這個函數。現在A1.cpp有其他文件包含。並非所有包含在A1.cpp中的文件都可用(第三方問題)。現在我的問題是,是否有可能從一個文件進行函數調用讓我們說main.cpp,動態鏈接到A1.cpp(沒有編譯A1.cpp),因爲我有一些來自第三方的文件不可用?鏈接C++文件
我的猜測是否定的,因爲除非我包含可用的文件,否則我無法獲得A1.cpp的對象文件,因此我無法調用函數。然而糾正我,如果我錯了,一個編譯文件的A1.cpp ie A1.o仍然可以使用,因爲我可以鏈接到它,因此使函數調用不依賴於其他包含文件(我沒有?)
對我來說很容易,我不是一個C++的傢伙:-)!任何幫助或在這個問題的見解表示讚賞!哦,順便說一句,我已經開始使用ndk的機器人,因此麻煩:-)
如何鏈接到只包含函數聲明的A.o將獲得A1.cpp中定義的函數定義?這是甚至可能的,只是想知道...我猜不是我所能想到的.. – GodOnScooter 2011-03-09 22:33:33
在編譯'A.o'時,有所有必需的源文件可用。所以,你將第三方關閉的東西當作預編譯的二進制blob。這足以鏈接到。您可以使用的接口爲明文「A.h」。應該管用。以這種形式獲得商業圖書館很常見(靜態圖書館)。 雖然你也需要其他二進制blob'blahblah.o'來滿足'A.o'的依賴關係。 – 2011-03-09 22:39:54
嗯..這實際上是有道理的,但如果blahblah.h有其他依賴項作爲其他包含的文件,我會需要所有其他相關的二進制blob,所以我想我要找的答案是獲取所有依賴項的二進制blob如果有的話),然後我可以成爲快樂的男人,否則我是死鴨子:-) – GodOnScooter 2011-03-09 22:50:39