如何啓用靜態庫來提取ascii數據文件中可用的數據?從靜態庫函數訪問文本數據文件
我試圖添加一個模型作爲一個庫,其中包含從數據文件中讀取數據的函數。我能夠在實際完全模擬之外編譯和運行主程序中的函數,但是一旦我將函數作爲模擬庫的主機上的數據不再被讀取。
由於數據路徑根據用戶而不同,因此無法爲ASCII數據文件提供絕對數據路徑。有沒有辦法使用objcopy將數據文件轉換爲庫中的對象代碼,或者如何最好地訪問靜態庫中的數據?
如何啓用靜態庫來提取ascii數據文件中可用的數據?從靜態庫函數訪問文本數據文件
我試圖添加一個模型作爲一個庫,其中包含從數據文件中讀取數據的函數。我能夠在實際完全模擬之外編譯和運行主程序中的函數,但是一旦我將函數作爲模擬庫的主機上的數據不再被讀取。
由於數據路徑根據用戶而不同,因此無法爲ASCII數據文件提供絕對數據路徑。有沒有辦法使用objcopy將數據文件轉換爲庫中的對象代碼,或者如何最好地訪問靜態庫中的數據?
有幾種解決方案可以在編譯時打開一個未知位置的文件。提示用戶輸入文件的名稱,包括目錄。使用環境變量指定包含該文件的目錄... Fortran 2003具有獲取環境變量值的內在屬性。從命令行參數中獲取信息... Fortran 2003也具有此用途。通過所有這些,將文件名構建爲字符串變量並將該變量提供給OPEN語句的FILE關鍵字。
如果你有這樣一個函數說:
void read_data_from_files() { ... }
你需要改變它的DLL更喜歡:
DataObject read_data_from_file(const char* file_path) { ... }
然後適當地調用它。您需要設計DataObject
。
我不知道爲什麼你inclouded的Fortran語言的標籤,但在Fortran語言你:
告訴代碼打開要使用字符串的文件
從中
閱讀並關閉它
主程序或庫沒有區別。
爲了在使用f2c將fortran代碼轉換爲c時使用getcwd_和lnblnk_,需要鏈接哪個庫? –
調用getcwd(),而不是getcwd_() –