首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC编译编译64位

GCC编译编译64位
EN

Stack Overflow用户
提问于 2017-11-20 00:28:16
回答 1查看 10.3K关注 0票数 1

我正在尝试用64位的G++编译C++。

我使用sublime text 3。这是我的构建系统文件:

代码语言:javascript
复制
{
  "cmd": ["g++ ", "-m64", "-std=c++0x", "$file", "-o", "${file_path}/${file_base_name}"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${file_path}",
  "selector": "source.c, source.c++, source.cxx, source.cpp",
  "variants": 
  [ 
    {
      "name": "Run",
      "cmd": ["bash", "-c", "g++ -m64 -std=c++0x '${file}' -o '${file_path}/${file_base_name}.exe' &&  xterm -e bash -c '\"${file_path}/${file_base_name}.exe\" ; read'"]  
    }
  ]    
}

编译后的文件仍然以32位格式创建。当我运行g++ --print-multi-lib时,我得到:

代码语言:javascript
复制
32;@m32
   x32;@mx32

我确定这与它有关,但我不确定如何修复它,(这是非常新的),我已经尝试安装multilib 64,但什么都没有改变。

感谢您的帮助。谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 02:00:29

您出色的text 3 IDE让您感到困惑和宠坏,而且您错误配置了它。

我希望您使用的是POSIX操作系统,例如Linux。

首先学习如何在命令行上进行编译(在某些终端中,在编辑器或集成开发环境之外)。您绝对需要了解如何使用invoke the GCC compiler (在终端中使用命令)。这里有一些提示。

确保拥有最新的GCC编译器,如果您想要C++11或更好的版本,至少要使用GCC 6。也许你需要升级你的编译器。

编译一个简单的单源程序

要将single.cc中的单源C++程序编译为tinyprog可执行文件,请使用

代码语言:javascript
复制
g++ -std=c++11 -Wall -g single.cc -o tinyprog

仅供参考,-std=c++11设置您的C++标准,-Wall请求几乎所有警告(您甚至可以添加-Wextra以获取更多警告),-g用于提供调试信息(在DWARF中),-o tinyprog设置输出可执行文件。使用ls -l tinyprogldd tinyprogfile tinyprog来更多地了解你的可执行文件。

编译一个简单的多源程序

编译一个小型的多源C++程序,例如由first.ccsecond.cc组成的smallprog可执行文件

  1. 将其中的每一个编译成目标文件

g++ -std=c++11 -Wall -g -c first.cc -o first.o g++ -std=c++11 -Wall -g -c second.cc -o将这些目标文件放入可执行文件中

g++ -std=c++11 -Wall -g first.o second.o .o -o smallprog

构建更复杂的程序

如果您使用额外的库,则可能需要在编译时添加一些额外的-I包含目录选项,并在链接时添加一些额外的-L libdir和-l libname选项。您可能希望使用pkg-config来帮助您。如果好奇,您可以在g++之后添加-v,以显示g++完成的实际步骤

我运行g++ --print-multi-lib

这只是查询您的g++编译器是如何配置的。您也可以单独尝试g++ -v

一旦您能够使用(一个或多个)命令进行编译,请考虑使用某些build automation工具。要使用GNU make构建单个程序,您可以从this中获得灵感。

一旦您精通了通过命令编译(直接或通过makeninja等构建自动化工具或通过您的脚本),请阅读编辑器或集成开发环境的文档以对其进行适当的配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47379128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档