在您最喜歡的編輯器中打開ffconf.h
並將_FS_RPATH
設置爲2
。從ffconf.h
:
#define _FS_RPATH 0
/* This option configures relative path feature.
/
/ 0: Disable relative path feature and remove related functions.
/ 1: Enable relative path feature. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
/
/Note that directory items read via f_readdir() are affected by this option. */
的FATFS庫的哪些功能包含在構建是可配置的,這樣你就不必失去寶貴的ROM空間(以及RAM的幾個字節)爲您的功能」不要使用。
對於0.8A之前FATFS庫的版本,_FS_RPATH
僅支持值0
和1
; f_getcwd
在這些版本中不可用。
另外,在之前的0.8版本中,有必要對C++代碼,以明確包括其標題爲C頭,以避免名稱重整:
extern "C" {
#include "ff.h"
}
從0.8版本開始,它這樣做內部。如果您仍在使用舊版本,您可以找到新版本here - 您留下的評論讓我相信這可能就是這種情況。
它沒有工作。 剛纔我發現了這一點。在一個c項目中,問題就像我以前問過的那樣。但在C++中,即使f_puts()也不起作用。 (未定義的引用'f_puts()',ld返回1退出狀態) – 2015-02-23 11:15:40
在C++項目中,將'extern「C」{}'放在fatfs庫的'#include'的附近或下載最新版本(R0。 11有內置)。 '_FS_RPATH'是否在C項目中啓用'f_chdir'?在那種情況下,你使用的是什麼版本的FatFS庫? – Wintermute 2015-02-23 11:35:17
使用R0.11版解決了這個問題。感謝您的幫助@Wintermute – 2015-02-25 06:25:12