Visual Studioで作成されたC++アプリケーションを(Linuxの場合)ビルドするための最良かつ最も簡単な方法は何ですか?コード自体の準備ができました-私はクロスプラットフォームのライブラリのみを使用しました。
Visual StudioのWindowsですべてを準備し、LinuxのCLIツールでそれをビルドすることは可能ですか?これを説明するドキュメントはありますか?
編集:詳細情報:
使用されるライブラリ:stl、wxwidgets、boost、asio、cryptlib。
Linuxのノウハウはほとんどありません。
EDIT#2:私は次のソリューションを選択しました:kdevelopで新しいプロジェクトを作成し、そこですべてをコンパイルします。
LinuxプロジェクトではCMakeを使用しています。 CMakeはKDevelopおよびVisual Studioプロジェクトファイルを生成できるため、プラットフォーム固有のOriginとしてCMakeファイルを作成できますIDEファイル。KDevelopジェネレーターは問題ないので、編集してコンパイルできます。 KDevelop(次にMakeを呼び出します)。
一方、特別なことがなければ、ソリューションファイルを保持したい場合は、CMakeまたはMakeを使用してLinuxでビルドすることができます(これは、テストアプリケーションを備えたライブラリで現在行っていることです)。 。ビルドプロセスが単に「コンパイラでこれらのファイルをスローし、それが何をするかを見てみましょう」ではない場合、このアプローチは複雑になるため、CMakeソリューションはクロスプラットフォーム開発に適していると思います。
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
フラグを指定する必要があります。
8年後...
今日私はこの質問に出くわし、 Visual C++ for Linux を見てみたいと思いました。
2016年3月にリリースされたLinux用VC++では、VC++でプロジェクトを作成し、ネイティブLinuxツールを使用してLinuxマシン/ VMでプロジェクトをビルドできます。さらに、LinuxツールではVSデバッガーがSSH経由でLinuxマシン/ VMのGDBを駆動できるため、VS内からアプリをデバッグすることもできます。 !
これはほぼ@mspoerrが求めていたものとまったく同じです:)
Linux用にVisual Studioで作成されたc ++アプリケーションを構築するための最良かつ最も簡単な方法は何ですか?コード自体の準備ができました-私はクロスプラットフォームのライブラリのみを使用しました。
Etvoilà!