Ubuntu编译器(C ++)

时间:2012-10-24 08:50:44

标签: c++ linux ubuntu g++

我是Linux编程新手(Ubuntu服务器)。

说明之间有什么区别:

c++ -c  main.cpp -o main.o -lstdc++
c++ -c  Console.cpp -o Console.o -lstdc++
c++ main.o Console.o -o App1

和此:

g++ -c  main.cpp -o main.o -lstdc++
g++ -c  Console.cpp -o Console.o -lstdc++
g++ main.o Console.o -o App1

这些说明是否相同? c ++指令是否为g ++提供了另一个名称?

8 个答案:

答案 0 :(得分:4)

update-alternatives --display c++

答案 1 :(得分:3)

是的,默认是g ++。您可以使用update-alternatives --display c++进行检查;通过sudo update-alternatives c++

进行更改
update-alternatives --config c++
There are 2 choices for the alternative c++ (providing /usr/bin/c++).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++       20        auto mode
  1            /usr/bin/clang++   10        manual mode
  2            /usr/bin/g++       20        manual mode

答案 2 :(得分:2)

他们都使用我相信的GNU C ++编译器。是的,他们是一样的。

答案 3 :(得分:2)

他们可能是一样的。您可以明确检查:

  

哪个c ++

     

的/ usr / bin中/ C ++

     

ls -l / usr / bin / c ++

     

的/ etc /替代/ C ++

     

ls -l etc / alternatives / c ++

     

的/ usr /斌/克++

答案 4 :(得分:1)

是的,他们是一样的,输入

which c++

告诉您c++实际上是/usr/bin/c++。然后输入

ll /usr/bin/c++

会给你

lrwxrwxrwx 1 root root 21 Sep  4 17:00 /usr/bin/c++ -> /etc/alternatives/c++*

然后

ll /etc/alternatives/c++

会给你

lrwxrwxrwx 1 root root 12 Sep  4 17:00 /etc/alternatives/c++ -> /usr/bin/g++*

所以是的,它们是相同的(有一个从c ++到g ++的符号链接)。

答案 5 :(得分:1)

只是找你自己:

$ ls -l /usr/bin/c++ /usr/bin/g++ /etc/alternatives/c++
  

lrwxrwxrwx 1 root root 12 Jun 2 19:41 / etc / alternatives / c ++ - >的/ usr /斌/克++ *
  lrwxrwxrwx 1 root root 21 Jun 2 19:41 / usr / bin / c ++ - >的/ etc /替代/ C ++ *
  lrwxrwxrwx 1 root root7Mär132012 / usr / bin / g ++ - >克++ - 4.6 *

或做:

$ c++ -v

VS

$ g++ -v

答案 6 :(得分:1)

g++表示GNU C ++编译器。

c++表示非特定的C ++编译器,但必须链接到特定的C ++编译器。如果在您的情况下,这只是GNU C ++编译器的符号链接,那么没有区别。但是,您可以使符号链接指向不同的C ++编译器。

答案 7 :(得分:1)

以下是如何弄清楚这些类型的事情

要查找可执行文件的路径:

which c++

检查它是文件还是符号链接:

ls -ald `which c++`

检查文件的类型:

file `which c++`

获取可用于将其与其他文件进行比较的校验和:

md5sum `which c++`

这是检查c ++和g ++是否相等的一种方法:

[ `md5sum $(which c++) | cut -d' ' -f1` == `md5sum $(which g++) | cut -d' ' -f1` ] && echo Yes, equal content || echo No, unequal content