【发布时间】:2018-05-02 21:52:41
【问题描述】:
我正在尝试用 64 位 G++ 编译 C++。
我正在使用 sublime text 3。这是我的构建系统文件:
{
"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 我得到:
32;@m32
x32;@mx32
我确定这与它有关,但我不确定如何修复它,(对此很新),我尝试安装 multilib 64 但没有任何改变。
任何帮助表示赞赏。谢谢你:)
【问题讨论】:
-
哪个操作系统?什么编译器和版本?此外,尝试在编辑器之外的命令行上构建。首先在终端中输入编译命令。请务必使用
g++ -Wall -g -std=c++11进行编译。也许将您的GCC 至少升级到 GCC 6。所以首先要学习在终端中编译,然后再配置您的 IDE 以按照您想要的方式进行编译。 -
在 Linux 和 Unix 上,了解可执行文件是 32 位还是 64 位的正确命令是
file和ldd;g++ --print-multi-lib提供有关编译器配置的信息
标签: c++ build compilation g++ sublimetext3