LoginSignup
0
2

More than 5 years have passed since last update.

Macで作ったC++プログラムをVisual StudioとCMakeを使ってwindowsでビルドする

Last updated at Posted at 2018-05-01

macで作ったC++プログラムをwindowsのvisual studioでビルドする際に色々手間取ったので備忘録

visual studioでCMakeを通してビルドする方法

  1. cmakeをダウンロード(https://cmake.org/download/ のBinary distributionsのWindows win64-x64 Installerを選択)
  2. cmakeのpathを通しておく。(インストール途中で通しておくか聞かれるチェックボックスがあるのでそれにチェックするか、自分でC:\Program Files\CMake\binにpathを通す)
  3. visual studio(visual studio community 2017)をダウンロードする。
  4. インストール作業の途中で何の開発環境を入れるか選択する画面が出てくるので「C++によるデスクトップ開発」を選択。 visual studio セットアップ.png
  5. インストールが終わったら同時にインストールされているはずの「開発者コマンドプロンプト for VS.2017」を開く。
  6. ビルドしたいプロジェクトのCMakeLists.txtのあるディレクトリに移動
  7. 「mkdir build」をしてCMakeLists.txtと並列に新しいディレクトリ作成(ディレクトリ名はbuildじゃなくてもいいけどここではbuildにしておく)
  8. 「cd build」で作った新しいディレクトリに移動
  9. 「cmake ..」でcmake
  10. buildファイルの中に「.sln」拡張子のものがあると思うのでそれをダブルクリックするとvisual studioで開ける

ビルドしたときに出てくる各エラーの対処

「定数が2行目に続いています」や「構文エラー'in'」「プリプロセッサ ディレクティブのシャープ記号 (#) の前に、空白文字以外の文字があります。」など

  • 原因 : macとwindows(visual studio?)の文字コードの違い
  • 対処方法
  1. エラーをダブルクリックでエラーの出ているファイルを開く
  2. 画面上のタブの「ファイル」→「名前を付けて〇〇(ファイル名)を保存」→「上書き保存」ボタンの右にある▼を押して「エンコード付きで保存」を選択(既に存在するが上書き保存しますか?的なことを聞かれるのでOKを押す)
  3. デフォルトでエンコードが【日本語(シフトJIS)】になっていた場合→エンコードは変えず、「行の終わり」を「Unix(LF)」に変更。その他の場合→「エンコード」を「Unicode(UTF-8 シグネチャつき)」に、「行の終わり」を「Unicode 行区切り記号(LS)」に変更

sys/time.hが無いといわれる

  • 対処方法
    • sys/time.h →time.hに書き換え

arpa/inet.hが無いといわれる

  • 対処方法
    • arpa/inet.h →winsock2.hに書き換え

fftw3.hが無いといわれる

boost/〇〇が無いといわれる

  • 対処方法
    • 画面右のプロジェクトが並んでいるところで、対象のプロジェクトの上で右クリック→「NuGetパッケージの管理」→boostを検索して取得

参考にしたサイト

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2