LLVMはCMakeとともに動作するため、特定のモジュールでデバッグモードを有効にするには、特定のファイルに対して-g
フラグを有効にするか、ビルドターゲット全体で有効にする必要があります。ほとんどの場合、
またはCOMPILE_DEFITIONS
ターゲットプロパティ(Difference between COMPILE_FLAGS and COMPILE_OPTIONS参照)またはCOMPILE_FLAGS
ソースファイルプロパティが必要です。
私はこれをファイルレベルとターゲットレベルの両方で1つのプロジェクトですばやく試して、実行可能であることを確認できます。
1つのファイルMySourceFile.cpp
とビルドターゲットMyTarget
があるとします。 。
get_target_property(my_target_compile_flags MyTarget COMPILE_FLAGS)
if (NOT my_target_compile_flags)
set(my_target_compile_flags "")
endif()
set_target_properties(MyTarget
PROPERTIES COMPILE_OPTIONS
"${my_target_compile_options} -g -hack-target")
ソースファイルレベルで-gフラグを追加する:私は、これは、その結果どこの見え方が-hack-target
と-hack-file
を追加してい下回っ
set(my_source_files
MySourceFile.cpp
)
add_library(MyTarget SHARED ${my_source_files} ...)
目標レベルに-gフラグを追加する
get_source_file_property(my_source_file_compile_flags
MySource.cpp
COMPILE_FLAGS)
if (NOT my_source_file_compile_flags)
set(my_source_file_compile_flags "")
endif()
set_source_files_properties(MySource.cpp
PROPERTIES
COMPILE_FLAGS
"${my_source_file_compile_flags} -g -hack-file")
上記の行から、あなたの便宜のためにCMakeヘルパー関数を作成することができます。-g
必要なものにフラグを付けます私。
私は、これは忍者とXcode上でどのように機能するかを話すことができる
:
忍者が
$ grep -ri "hack-" BuildNinja
BuildNinja//build.ninja: FLAGS = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -fPIC -g -hack-target -std=c++11 -g -hack-file
Xcodeの
目標レベルのXcodeの-g
で」に行きますデバッグシンボルを生成する "プロパティ:
![Xcode target without -g flag enabled in Release](https://i.stack.imgur.com/X6dB0.png)
これはフラグがどのように見えるかです:
目標1:![enter image description here](https://i.stack.imgur.com/Z7Zd4.png)
ファイル1:これは非常にハッキングなしで可能である![enter image description here](https://i.stack.imgur.com/Ap0Op.png)
疑い。 – arrowd
LLVMのCMakeListsファイルをハックしなければ、おそらく不可能です。しかし、あなたがそれらをハックする準備ができているなら、間違いなく可能です。 –
この質問が保留になっている理由はわかりません。質問は絶対的に明確かつ有効なので、有権者が文脈から完全に外れているように見えます。 – AlexDenisov