我正在嘗試將一些圖像加載到非常基本的基於C++/SDL的程序中。圖像使用SDL_LoadBMP
加載。我有圖像加載,一切似乎完美。我的問題是,圖像相對於我從哪裏調用程序加載。相對於二進制加載圖像
所以我有一個像這樣的目錄結構。
project/
src/
source.cpp
assets/
image.bmp
bin/
program
當我從項目目錄(./bin/program
)執行程序它使用的assets/image.bmp
的路徑來加載圖像。有沒有什麼辦法可以使用../assets/image.bmp
的相對路徑,這樣程序可以在任何地方執行?
我想我需要的東西,提供程序的絕對路徑,然後我可以追加我的路徑。
哇,我不認爲這會很困難。那麼一個簡單的相對路徑,比如'../path'或'./path'就不行了?我想我將不得不建立或找到一個很好的功能,可以在大多數地方使用。我的目標是Linux,但我希望可以選擇稍後交叉編譯。 – Olical
那麼'basename'呢?任何理由爲什麼不應該使用? http://stackoverflow.com/a/1019557/455137 – Olical
相對路徑總是相對於當前工作目錄,這可能與您的二進制文件所在的目錄完全無關。如果您主要針對Linux,請閱讀[Unix編程常見問題的第1.14節](http://www.steve.org.uk/Reference/Unix/faq_2.html#SEC23)。它建議不要使用二進制相對路徑。 – MvG