0
+-CMakeLists.txt
|
+---Dir1
|- source_file1.c
|- CMakeLists.txt
+---Dir2
|- source_file2.c
|- CMakeLists.txt
+---Dir3
|- header_file.h
我有使用cmake解決以.so未定義的符號在報頭中定義的
abc.so創建一個共享庫這圖書館2點未定義的名稱:
U do_something1
U do_something2
這兩者都是在Headerfile.h中的一個不同的目錄中定義。該文件是source_file1.c和source_file2.c的SOURCE_FILE的一部分。
但是,我無法獲得在庫中解析的未定義符號!這是超級奇怪的。我究竟做錯了什麼?
代碼是用-fPIC -rdynamic編譯的。 出於某種原因--Wl - 導出所有符號出現在編譯器無法識別的位置。編譯器是gcc 5.4.0
'這兩者在Headerfile.h'定義 - * *動態符號在**頭很少定義* *文件。如果函數在頭文件中被定義*,它通常使用'static inline'說明符。那麼,通過在'header_file.h'中定義符號是什麼意思? – Tsyvarev
這兩個函數是內聯函數。我發現所有其他非內聯函數都是在.so中定義的。我如何解決它?我不想讓他們內聯。會添加靜態內聯說明符修復它嗎? – theCuriousOne
我有點刪除了內聯函數,現在用代碼直接替換它。所以不能立即嘗試。 – theCuriousOne