Я немного больше слонялся, и я нашел предварительное решение. Я не совсем доволен этим, потому что это включает в себя изменение исходного кода, тогда как я на самом деле искал конвейерное решение, но кажется, что g ++. Exe принимает только аргументы командной строки (пожалуйста, исправьте меня, если я ошибаюсь).
Мое "решение" немного грубовато, но оно работает и, безусловно, лучше (для меня), чем любое другое жизнеспособное решение, с которым я сталкивался (которого нет!). Оно требует должного внимания к окну сообщения «Файл был изменен извне» вашего редактора (если файл редактируется), но на самом деле спецификация все еще находится в редакторе, так что это своего рода спорный вопрос.
Это простой взлом командной строки. Я бы предпочел более интегрированный вариант, но вот этот (и он работает):
В Codeblocks, перейдите в: Настройки -> Компилятор и отладчик -> Другие настройки ->
[Дополнительные параметры] -> Макрос командной строки:
Сделать эти моды в командной строке.
Все они должны быть в одной строке (конечно), но для ясности я разделил их:
cmd /c DropTheBOM.exe $file
& $compiler $options $includes -c $file -o $object // (use your compiler cmdline)
& MakeTheBOM.exe $file
// Write your own utils, or try here: http://code.google.com/p/utf-bom-utils/
PS: файлы #include не передаются из своей спецификации (если они есть) ..
Простой BOM y / n arg switch для подпрограммы, которая включает в себя эти файлы, #include эти файлы решит эту проблему довольно просто ... (но это только проблема Windows ... возможно, именно поэтому он не был обслужен ... или есть кто-нибудь знает?