簡體   English   中英

鏈接器在Eclipse / JNI / ANT中找不到lib

[英]Linker can't find lib in Eclipse/JNI/ANT

我正在嘗試在Linux下的Eclipse中構建一個涉及JNI和ANT的大型Java / c ++項目。 一個源c ++文件調用log10()函數進行數學計算。 該項目可以正常編譯,但是無法鏈接,它抱怨找不到鏈接log10()所需的libm.so庫。

我的問題是,即使經過以下步驟,我也無法正確地告訴Eclipse鏈接該文件:

  1. 在鏈接器選項中添加了正確的庫路徑,
  2. 在鏈接器包含列表中添加了對libm的引用,
  3. 在完整的編譯選項列表中添加了-lm
  4. LD_LIBRARY_PATH設置為指向庫的位置,
  5. 將庫復制到當前目錄。

我在做什么錯/有人在Eclipse中正確鏈接庫有這樣的經歷嗎? 有什么建議么?

這有點令人困惑。 如果您無法在Java環境中的運行時找到您的庫,請執行以下操作:

在對log10進行任何調用之前,請嘗試在Java環境中加載.so庫。

System.LoadLibrary("m");

注意我如何將“ lib”和“ .so”排除在外。

但是,您在抱怨C ++中的鏈接器問題,因此無法鏈接到動態文件。 您只能鏈接到靜態庫或靜態導出庫(因此,需要在編譯時鏈接到libm.a文件,然后程序在運行時將需要libm.so)。

您能否張貼您收到的確切消息以及何時收到?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM