特定の型が存在するかどうかを確認するために、基本的なcmakeを記述しようとしています。 私はcheck_type_sizeを複数回呼び出す際に問題があります。同じ変数(サイズを保持する変数)を複数回使用した場合は、初めてcheck_type_sizeを呼び出すときにのみ、その変数に値が設定されます。 4 VAR_SIZE1が2回目の呼び出しの後に更新されませんでしたが行なわ - int型のint型 チェックサイズの チェックサイズ:これは私が得るものですcmake check_type_size複数の呼び出しで同じ変数を使用すると問題が発生する
cmake_minimum_required(VERSION 3.8)
project(TEST LANGUAGES C;CXX)
INCLUDE (CheckTypeSize)
check_type_size("int" VAR_SIZE1)
message(${VAR_SIZE1})
check_type_size("void *" VAR_SIZE1)
message(${VAR_SIZE1})
message("VAR_SIZE1 was not updated after the second call.\n")
check_type_size("int" VAR_SIZE2)
message(${VAR_SIZE2})
check_type_size("void *" VAR_SIZE3)
message(${VAR_SIZE3})
message("We get the correct size if use different variable every time.")
add_executable(TEST "${TEST_SOURCE_DIR}/main.cpp")
。
Check size of int
Check size of int - done
4
Check size of void *
Check size of void * - done
8
We get the correct size if use different variable every time.
何が起こっているのかわかりませんか? check_type_size()
呼び出しで作成
可能な重複https://stackoverflow.com/questions/46204710/ cmake-check-function-exist-いわゆるワンタイムインマクロ(one-time-in-macro))である。変数名を扱う独自のラッパーマクロに型チェックを入れてください。 – Florian