在C++中设置基于操作系统的文件路径
Set the Filepath Based Upon OS in C++
我想根据C++中的操作系统设置文件路径。
我已经研究了通过预处理器调用来实现这一点的方法,但不知道这将如何帮助我在程序本身中设置文件路径。
伪代码大致如下:
string file_path;
if WINDOWS_OS:
file_path = <windows file path>
else if MAC_OS:
file_path = <mac file path>
我希望有一个比我更聪明的人能够引导我找到实现这一目标的最佳方式。谢谢
预处理器在编译时运行。一旦编译器完成,程序的最终可执行版本就完成了。该可执行文件只能在一个平台(Windows、Mac或Linux(上运行。
因此,没有必要在运行时检查您使用的主机类型。
您编写的代码将在代码运行时显示以检查主机类型。这在C++中是不必要或不合适的。像c#这样的语言创建可以在三个平台中的任何一个平台上解释的字节码,它会在运行时检查主机类型,但不会检查c++。
以下是一个示例标头,它在编译时使用预处理器检查主机类型(取自"如何在C预处理器中可靠地检测Mac OS X、iOS、Linux、Windows?"(:
#ifdef _WIN32
//define something for Windows (32-bit and 64-bit, this part is common)
#ifdef _WIN64
//define something for Windows (64-bit only)
#else
//define something for Windows (32-bit only)
#endif
#elif __APPLE__
#include "TargetConditionals.h"
#if TARGET_IPHONE_SIMULATOR
// iOS Simulator
#elif TARGET_OS_IPHONE
// iOS device
#elif TARGET_OS_MAC
// Other kinds of Mac OS
#else
# error "Unknown Apple platform"
#endif
#elif __linux__
// linux
#elif __unix__ // all unices not caught above
// Unix
#elif defined(_POSIX_VERSION)
// POSIX
#else
# error "Unknown compiler"
#endif
我对你的问题还是有点困惑。您是否要求为每个操作系统设置文件路径的正确方法?
相关文章:
- 在C++中设置基于操作系统的文件路径
- 如何链接我自己的 .so 文件而不是操作系统捆绑包 .so 文件?
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 窗口中的文件损坏 电源故障后操作系统
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 如何在 Windows 操作系统中创建制作文件并使用 cmd 运行它
- 让可执行文件在多个 Linux 操作系统上运行:
- C/C++文件输出缓冲/缓冲区切换到操作系统
- 文件移动 - 操作系统如何知道是更新主文件表还是复制和删除
- 如何在 Windows 8 64 位操作系统中注册.DLL文件
- 如何在C++中在多个操作系统上播放声音文件
- 如何在不被操作系统冻结或杀死进程的情况下向文件写入大量数据
- 跨所有操作系统应用文件状态(Stat的结构类型)
- Windows 7 x64操作系统下如何确定应用程序文件路径
- .exe文件在windows 7操作系统下的路径
- 在检查c++头文件上的操作系统时出错
- 内存映射一个巨大的文件在32位软件运行在64位操作系统
- 为什么操作系统分配的内存比小型可执行文件所需的要多
- Qt平台上的操作系统级别文件I/O锁
- 无法在 Ubuntu 64 位操作系统中读取大于 2GB 的文件