web-dev-qa-db-ja.com

Linux用のVisual C ++プロジェクトを構築する方法

Visual Studioで作成されたC++アプリケーションを(Linuxの場合)ビルドするための最良かつ最も簡単な方法は何ですか?コード自体の準備ができました-私はクロスプラットフォームのライブラリのみを使用しました。

Visual StudioのWindowsですべてを準備し、LinuxのCLIツールでそれをビルドすることは可能ですか?これを説明するドキュメントはありますか?

編集:詳細情報:

  • 使用されるライブラリ:stl、wxwidgets、boost、asio、cryptlib。

  • Linuxのノウハウはほとんどありません。

EDIT#2:私は次のソリューションを選択しました:kdevelopで新しいプロジェクトを作成し、そこですべてをコンパイルします。

40
mspoerr

LinuxプロジェクトではCMakeを使用しています。 CMakeはKDevelopおよびVisual Studioプロジェクトファイルを生成できるため、プラットフォーム固有のOriginとしてCMakeファイルを作成できますIDEファイル。KDevelopジェネレーターは問題ないので、編集してコンパイルできます。 KDevelop(次にMakeを呼び出します)。

一方、特別なことがなければ、ソリューションファイルを保持したい場合は、CMakeまたはMakeを使用してLinuxでビルドすることができます(これは、テストアプリケーションを備えたライブラリで現在行っていることです)。 。ビルドプロセスが単に「コンパイラでこれらのファイルをスローし、それが何をするかを見てみましょう」ではない場合、このアプローチは複雑になるため、CMakeソリューションはクロスプラットフォーム開発に適していると思います。

19
OregonGhost

LinuxでCコードを手動でコンパイルする方法は次のとおりです追加のビルドツールなしで

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2

ただし、プロジェクトがいくつかのファイルよりも大きい場合は、代わりにビルドツールを使用することもできます(CMakeなど、OregonGhostの回答を参照)を使用して、多くのファイルのコンパイルを自動化し、インクリメンタルにします。ビルドツールを使用する場合は、上記と同様の引数を使用して、内部でgccを実行します。上記の引数を理解しておくと、自動ビルドが失敗した場合のトラブルシューティングに役立ちます。

これにより、code1.cおよびcode2.cが実行可能なバイナリプログラムにコンパイルされ、.hファイルを。、includedir1およびincludedir2からロードし、ライブラリ(例:libuse1.so *およびlibuse2.so *)をディレクトリlibdir1およびlibdir2からロードし、ライブラリuse1(ファイル名libuse1.so *)およびuse2に対応します。

.cファイルで未定義のシンボルエラーが発生した場合は、-Iフラグをさらに指定する必要があります。 .oファイルで未定義のシンボルエラーが発生した場合は、-lフラグをさらに指定する必要があります。 cannot find -l...エラーが発生した場合は、さらに-Lフラグを指定する必要があります。

7
pts

8年後...

今日私はこの質問に出くわし、 Visual C++ for Linux を見てみたいと思いました。

2016年3月にリリースされたLinux用VC++では、VC++でプロジェクトを作成し、ネイティブLinuxツールを使用してLinuxマシン/ VMでプロジェクトをビルドできます。さらに、LinuxツールではVSデバッガーがSSH経由でLinuxマシン/ VMのGDBを駆動できるため、VS内からアプリをデバッグすることもできます。 !

これはほぼ@mspoerrが求めていたものとまったく同じです:)

6
Rich Turner

Linux用にVisual Studioで作成されたc ++アプリケーションを構築するための最良かつ最も簡単な方法は何ですか?コード自体の準備ができました-私はクロスプラットフォームのライブラリのみを使用しました。

  • 標準C++の一部ではないものがあるかどうかを確認します。
  • すすぎ、繰り返し
  • メイクファイルまたはKDevelopプロジェクトを作成する

Etvoilà!

4
dirkgently