如何鏈接C中的.exp文件?
我可以鏈接.so,.o,.a,.la,lo和.slo文件。
但是有文件httpd.h只有.exp文件(沒有.so,.o,.a,.la,lo和.slo文件),我需要使用它的一個函數。
而且,我得到未定義的符號錯誤。Ubuntu,如何鏈接C中的.exp文件?
undefined symbol: ap_cstr_casecmp
如何鏈接C中的.exp文件?
我可以鏈接.so,.o,.a,.la,lo和.slo文件。
但是有文件httpd.h只有.exp文件(沒有.so,.o,.a,.la,lo和.slo文件),我需要使用它的一個函數。
而且,我得到未定義的符號錯誤。Ubuntu,如何鏈接C中的.exp文件?
undefined symbol: ap_cstr_casecmp
.EXP文件僅包含導出的符號列表。沒有意義與它聯繫,你需要圖書館鏈接。
這個'ap_cstr_casecmp'函數在httpd.h中,但是我得到'undefined symbol:ap_cstr_casecmp'。如何正確鏈接以擺脫此錯誤? –
.exp
is used on Windows only並且在Ubuntu上沒有用。你需要一個.so
或.a
文件鏈接到Ubuntu上。
你需要找到庫文件(lib<name>.so
或lib<name>.a
或類似,其中<name>
是庫的名稱),然後用-L<path> -l<name>
其中<path>
應的路徑包含庫文件的目錄被替換鏈接。如果<path>
是/usr/lib
則可以省略-L<path>
。
這個'ap_cstr_casecmp'函數在httpd.h中,但是我得到'undefined symbol:ap_cstr_casecmp'。如何正確鏈接以擺脫此錯誤?在Ubuntu的lib目錄下有一個文件httpd.exp,那麼它們的用途是什麼? –
查看已更新的答案。 – Rufflewind
沒有這樣的文件,來自同一頭文件的其他功能工作正常,但事實並非如此。 –
嘗試在編譯器或加載器命令行中添加'-lapr-1'。 –
同樣的錯誤,httpd.h既不是apr也不是apr-util的一部分,但是apache2本身,httpd.h的其他函數確實工作正常。 –