私は 2 つのバージョンがあるプロジェクトに CMake を使用しています。1 つは -lglapi を必要とし、もう 1 つは必要としません。
これまでに使用した行は次のようになります。
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
これらの行の直後に CMakeList.txt に if ステートメントを追加しました。
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
SINGLE_MODE 変数は少し上に定義されています。メッセージ コマンドを使用してフラグ変数の内容を表示すると、問題ないように見えます。
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
しかし、コンパイルを開始すると、コンパイルエラーが発生します。詳細モードを使用すると、コンパイラ呼び出しで次のようになることに気付きました。
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
つまり、-lglapi をリストに追加する前に、どういうわけかセミコロンが追加されました。
ここで誰かが同様の問題に遭遇し、この問題を解決する方法を知っていますか? 私はかなり長い間グーグルで検索し、CMake マニュアルを研究しましたが、ここで何が間違っていたのかわかりませんでした。
ありがとう、トバイアス