2

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++の別名を提供しますか?

4

8 に答える 8

4

update-alternatives --display c++

于 2012-10-24T08:54:30.590 に答える
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
于 2012-10-24T08:56:23.810 に答える
2

どちらもGNUC++コンパイラを使用していると思います。そうです、それらは同じです。

于 2012-10-24T08:52:53.160 に答える
2

それらはおそらく同じです。明示的に確認できます。

どのC++

/ usr / bin / c ++

ls -l / usr / bin / c ++

/ etc / Alternatives / c ++

ls -l etc / Alternatives / c ++

/ usr / bin / g ++

于 2012-10-24T08:56:39.530 に答える
1

g++GNUC++コンパイラを意味します。

c++非特定のC++コンパイラを意味しますが、特定のコンパイラにリンクする必要があります。あなたの場合、これがGNU C ++コンパイラへの単なるシンボリックリンクである場合、違いはありません。ただし、シンボリックリンクが別のC++コンパイラを指すようにすることもできます。

于 2012-10-24T09:40:55.137 に答える
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++へのシンボリックリンクがあります)。

于 2012-10-24T08:55:13.960 に答える
1

自分を探してください:

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

lrwxrwxrwx1ルートルート12Jun2 19:41 / etc / Alternatives / c ++-> / usr / bin / g ++ *
lrwxrwxrwx1ルートルート216月2日19:41/usr / bin / c ++-> / etc / Alternatives / c ++ *
lrwxrwxrwx1ルートルート7Mär132012/usr / bin / g ++-> g ++-4.6 *

または行う:

$ c++ -v

対。

$ g++ -v
于 2012-10-24T08:56:17.523 に答える
1

はい。

これらのタイプのものを理解する方法は次のとおりです

実行可能ファイルへのパスを見つけるには:

which c++

ファイルなのかシンボリックリンクなのかを確認するには:

ls -ald `which c++`

ファイルの種類を確認するには、次の手順に従います。

file `which c++`

他のファイルと比較するために使用できるチェックサムを取得するには、次のようにします。

md5sum `which c++`

c++とg++が等しいかどうかを確認する1つの方法は次のとおりです。

[ `md5sum $(which c++) | cut -d' ' -f1` == `md5sum $(which g++) | cut -d' ' -f1` ] && echo Yes, equal content || echo No, unequal content
于 2012-10-24T09:44:57.877 に答える