C/C++ 如何知道如何针对正确的体系结构进行编译
How does C/C++ know how to compile for the correct architecture?
嗯,我从计算机编程开始,比如c++和c。我有一个关于处理器架构的强烈问题,它将使我能够更好地理解我的代码将在哪里运行。
所以,假设我编译了一个 c++ 程序。此时,它编译为程序集低级代码。此代码具有执行我的代码的处理器指令。由于每个处理器都有一组不同的指令,我想知道我的代码将在哪里运行。比如,我在代码块上编译我的程序。我如何知道我正在为 32 位还是 64 位计算机编译它?我可以更改它吗?两个 32 位处理器有什么区别,一个是 i5,另一个是奔腾 4?(我的代码会在两个处理器中运行吗?
谢谢:)
我如何知道我正在为 32 位还是 64 位计算机编译它?
你必须在构建程序时告诉编译器。它可能有一些默认值 - 查看其文档。
我可以更改它吗?
也许,这取决于您的编译器。 如果它有必要的选择,那么是的。 例如,clang
有一个-arch
标志。
两个 32 位处理器有什么区别,一个是 i5,另一个是奔腾 4?
如果两者都实现相同的指令集,那么它们实际上等效于编译软件。 不过,特定于机器的优化可能会在其中一个或另一个上效果更好。
我的代码会在两个处理器中运行吗?
在您给出的示例的情况下,可能是的。
相关文章:
- vscode g++链路故障:体系结构x86_64的未定义符号
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- C++代码只能针对特定的 CPU 体系结构进行编译.有没有办法将其编译为所有架构
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- MacOS - 编译 c++ OpenCv 返回体系结构x86_64找不到的符号
- 是在同一体系结构上运行的静态编译的纯标准C 程序可移植
- 为什么在不同的计算机体系结构上,相同的GCC的编译选项会有所不同
- c++ 编译错误 - 体系结构x86_64的未定义符号
- 编译错误 - 必须定义目标体系结构
- 编译时出现体系结构x86_64错误的未定义符号
- 体系结构x86_64的未定义符号-正在编译继承类
- 编译 C++ 时体系结构x86_64的未定义符号
- ld:编译 C++ 时在体系结构x86_64找不到符号
- 体系结构的未定义符号x86_64:编译问题
- 是否可以对多个 CPU 体系结构使用 ICC 进行编译
- 用于ARM体系结构的交叉编译portaudio
- C++编译错误,需要帮助-ld:找不到体系结构x86_64的符号
- 在OS X上使用g++-5编译-体系结构x86_64的未定义符号
- 编译Qt应用程序时出现体系结构x86_64的重复符号错误
- C/C++ 如何知道如何针对正确的体系结构进行编译