1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows .rc ファイルが UTF-16(LE)だと, git + cmake + MinGW で扱いずらいメモ

Last updated at Posted at 2020-05-03

背景

Windows の .rc ファイル(resource file)は, Visual Studio などで生成すると UTF-16(LE. BOM 付き) がデフォルトであり, 推奨の模様.

MinGW で Windows バイナリをコンパイルできるようにしたい.

問題

MinGW windres は, UTF-16 ファイルには対応していない. UTF-8? と想定してパースしてしまう.

.gitattributes.rc に utf-16 le エンコーディングを指定している場合, .rc を UTF-8 などに変換して commit しようとしようにも, convert できないエラーがでる.

llvm-mingw

llvm-mingw(clang コンパイラ)では, UTF-16 ファイルを読み込むことができない.

CMake でプロジェクト管理している場合, set_source_files_properties(myfile.rc PROPERTIES LANGUAGE RC) などとして resource ファイルであることを明示する必要がある.

llvm-rc

llvm-rc も同様に UTF-16 をサポートしていない(UTF-8 も?)

パッチが出ているがマージされていない(as of LLVM 10.0.0)

解決方法

.rc の量が多くなければ, MinGW 用に別 .rc ファイルを用意(UTF-8 or ASCII(cp932?))するのがよいと思われる. このとき, .gitattributes でエンコーディング強制指定の問題を回避するため, 拡張子を変えておくのがよいでしょう.

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?