Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果C++;是机器相关的,那么如何用C++;在不同的计算机上工作? 如果C++是机器依赖的,那么C++编写的软件如何在不同的计算机上工作? PS图象处理软件是用C++编写的,但它运行在许多计算机上,但是C++不是跨平台的。p>_C++ - Fatal编程技术网

如果C++;是机器相关的,那么如何用C++;在不同的计算机上工作? 如果C++是机器依赖的,那么C++编写的软件如何在不同的计算机上工作? PS图象处理软件是用C++编写的,但它运行在许多计算机上,但是C++不是跨平台的。p>

如果C++;是机器相关的,那么如何用C++;在不同的计算机上工作? 如果C++是机器依赖的,那么C++编写的软件如何在不同的计算机上工作? PS图象处理软件是用C++编写的,但它运行在许多计算机上,但是C++不是跨平台的。p>,c++,C++,正如James Adikson所说,为每个平台编译一个可执行文件。但您可能想知道如何处理平台细节 对于初学者来说,Windows可执行文件在内部与Linux不同(以Windows和Linux为例)。这可以通过使用不同的编译器或为编译器指定不同的目标平台来处理 然后,您可以与操作系统进行交互,例如,在Windows中,文件路径使用“\”作为分隔符,而在linux或unix中,文件路径使用“/”,这类事情通常通过使用编译器定义的宏的\ifdef预处理器指令来处理。比如: #ifdef __WINDO

正如James Adikson所说,为每个平台编译一个可执行文件。但您可能想知道如何处理平台细节

对于初学者来说,Windows可执行文件在内部与Linux不同(以Windows和Linux为例)。这可以通过使用不同的编译器或为编译器指定不同的目标平台来处理

然后,您可以与操作系统进行交互,例如,在Windows中,文件路径使用“\”作为分隔符,而在linux或unix中,文件路径使用“/”,这类事情通常通过使用编译器定义的宏的
\ifdef
预处理器指令来处理。比如:

#ifdef __WINDOWS__
char separator = '\\';
#else
char separator = '/';
#endif
请注意,这是条件编译,因此它不会两次定义同一个变量

另外,有些东西在标准库中是平台独立的。文件交互在每个系统上都不同,但您可以使用标准库以独立于平台的方式创建文件并附加到其中

std::ofstream file("my_file.txt");
file << "Hello World!\n";
std::of流文件(“my_file.txt”);

文件平台独立性的更多示例:

  • 线程和相关的标准库类
  • 标准时间班
  • ntohs/htons等,用于终端独立性
  • uint64_t、int32_t等,用于需要了解变量大小的情况
  • 来自BSD套接字API的操作系统特定错误代码的IFDEF
  • 还有更多

并非所有平台都使用相同的可执行文件。每个平台都编译一个可执行文件。谢谢James Adkison。C++是跨平台的。不要喝Java Kool aid。