2017-07-16 6 views
1

Ainsi, quelqu'un a récemment présenté quelques corrections de bugs à mon projet, et ils ont également inclus ceci:Alternative multiplate-forme à cette définition de realpath?

#ifdef _MSC_VER 
    #ifndef PATH_MAX 
    #define PATH_MAX _MAX_PATH 
    #endif 
    #define realpath(N,R) _fullpath((R),(N),_MAX_PATH) 
#endif 

Le problème est que je utilise Code :: Blocks avec MinGW, quand je tente de compiler, il dit ce realpath() n'est pas du tout défini. L'expéditeur n'a fourni aucune alternative, et quand j'essaye de rechercher le chemin réel sans MSVC, tout ce que j'obtiens utilise realpath avec MSVC. Est-ce que quelqu'un a quelque chose que je peux utiliser avec MinGW à la place?

Répondre

1

realpath() est une fonction POSIX qui est pourquoi il n'est pas trouvé par MinGW. Ce que vous pouvez faire est d'utiliser la bibliothèque boost :: filesystem comme une alternative multiplate-forme pour trouver le chemin absolu. Un tutoriel pour boost :: système de fichiers est disponible ci-dessous:

http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm#tutorial

Il y a déjà eu des questions sur le boost :: bibliothèque de système de fichiers. Un lien vers un qui peut être utile a été joint ci-dessous:

How do I "normalize" a pathname using boost::filesystem?

+0

Merci! Je vais essayer. –

+0

@KelvinShadewing Si vous avez trouvé cette réponse utile, merci de l'accepter? –