[解決済み] CMake の add_definitions が動作しないようです。
2022-02-16 19:13:13
質問
CMakeでプリプロセッサー変数を定義しようとしているのですが、残念ながらうまくいかないようです。
以下は私のc++のコードです。
#ifdef hehe_test
#define it_exists "it_exists"
#endif
#ifndef hehe_test
#define it_exists "it_doesnt_exist"
#endif
int main(int argc, char** argv)
{
printf("%s\n",it_exists);
return 0;
}
そして、これが私のCMakeLists.txtです。
project(LibraryTester)
add_definitions(hehe_test)
file(GLOB src "*.h" "*.cpp")
include_directories(${CMAKE_SOURCE_DIR}/include)
add_executable( ${PROJECT_NAME} ${src})
私のプログラムを実行すると、it_doesnt_exist と出力されます。
hehe_test"が定義されていないことを表しています。
私は何を間違えているのでしょうか?
どうすればいいですか?
以下のようなフォームでは、どのような場合でも期待通りの動作はしません。
add_definitions(hehe_test)
によると ドキュメント という形になります。
add_definitions(-DFOO -DBAR ...)
あなたの場合、それは意味します。
add_definitions(-Dhehe_test)
また、必要に応じて値を与えることができます。
// statically defined
add_definitions(-Dfoo=bar)
// use a cmake or user-defined variable
add_definitions(-Dbar=${FOO})
// use "" if you intend to pass strings with spaces
add_definitions(-Dxxx="${YYY}")
なお、これらをまとめて同じ
add_definitions
の呼び出しがあります。
関連
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] CMake でモジュールディレクトリが見つからない
-
[解決済み] CMAKE_SOURCE_DIRはどこですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] CMakeにおけるデバッグとリリースの比較
-
[解決済み] CMakeの出力をクリアするための'cmake clean'コマンドを探しています。
-
[解決済み] configure --prefix=DIR && make all install ' と同等のCMakeは何ですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
-
[解決済み】CMakeは具体的にどのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] プロジェクトでCMAKE_CXX_FLAGSを変更する
-
[解決済み] CMake の add_definitions が動作しないようです。
-
[解決済み] CMake でモジュールディレクトリが見つからない
-
[解決済み] CMakeでポータブルパラレルビルドを設定するには?
-
[解決済み] cmakeのincludeコマンドにおいて、ファイルとモジュールの違いは何ですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMakeでGCCとClang/LLVMの切り替えを行う。