Masaki's Thinking Memo

しがない兼業プログラマの思いつきとTips
<< June 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
<< BinaryReader ファイルの終わりを判定 | main | Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ >>

cl : コマンド ライン error D8016 : コマンド ライン オプション '/RTC1' と '/clr' は同時に指定できません

過去の資産の機能追加分はC++/CLIで、などと虫のいいことを考えたものの、
VC8のアップグレードウィザードで変換したプロジェクトでやってみると
Debugモードで掲題のエラーがつぶせず撃沈。
しばらく諦めていたものの悔しいのでプロジェクトファイルをいじったら
コンパイルできるようになったのでメモ書き。動作補償は自己責任でお願いします。
間違っていたらコメントくださいませ。


〜 以下説明 〜

プロジェクト名.vcprojをテキストエディタで開くと、プロジェクト全体の設定が
<Configurations>〜</Configurations>というタグの中でなされており、
そのあとに<Files>というタグがある。
このタグの中には個々のファイルについてのタグ<File>がある。その中に、
<FileConfiguration>というタグがあり、このタグで、個々のファイルに対する
コンパイルオプションの個別設定がされているようだ。
なので、全体設定でいくらランタイムチェックを外しても、個々のファイルで
ランタイムチェックが指定されていると、掲題のエラーが出る。

エラーの元となるランタイムチェックを指定しているのは、
BasicRuntimeChecks="3"
という要素。これを軒並み"3"→"0"と値を置換してやると、エラーが出なくなる。

ちなみに、適当に新規にプロジェクトを作成して、ソースファイルをインポートすると
<FileConfiguretion>というタグは記述されていないようだったので、
個々ファイルセクションの<FileConfiguretion>〜</FileConfiguretion>というタグ自体
ごっそり削除してビルドしてやったところ、とりあえず問題なくビルドが終わり、
アプリケーションの起動も出来た(その後の動作は未チェックだ(汗 )。
このほうがproject全体での設定が個々に反映されるだろうから、
都合がよいかもしれない。

説明がわかりにくいので、タグの構造を以下に示す。

<?xml version="1.0" encoding="shift_jis"?>
<VisualStudioProject>
  <Platforms><Platform></Platform></Platforms>
  <ToolFiles></ToolFiles>
  <Configurations>  <!--ここからproject全体設定セクション-->
    <Configuration>
      <Tool ・・・/>・・・
    </Configuration>・・・
  </Configurations>

  <References><!--projectの参照設定ジャマイカ-->
    <AssemblyReference ・・・/>・・・
  </References>
  <Files>
    <Filter><!--ソース、ヘッダ、リソースなどに分かれている-->
      <File ファイル名>
        <!--ここからこのファイルのコンパイル設定セクション-->
        <FileConfiguration>
          <Tool
          ・・・
          BasicRuntimeChecks="3" ・・・/><!--このBasicRuntimeChecksの値を"3"から"0"に置換する-->
        </FileConfiguration>
      </File>
・・・<!--Filterで指定した種類のファイルの数だけ繰り返し-->
    </Filter>
  </Files>
・・・
</VisualStudioProject>
このエントリーをはてなブックマークに追加
VC++ | permalink | comments(0) | trackbacks(0) | pookmark |

この記事に対するコメント

コメントする









この記事のトラックバックURL
http://rejoice.jugem.jp/trackback/136
この記事に対するトラックバック