0

自分のニーズに合わせてサードパーソンコードを調整しようとしています。このコードは、ビルドとインストールに使用されるCMake構成ファイルとともに提供されます。ライブラリの1つを選択する可能性があります。そして、コードではしばしば#ifdef USE_FTD2XXディレクティブが使用されます。これは、次のようにCMamkeFiles.txtファイルで定義されていることがわかりました。

option(USE_FTD2XX "Use FTDI libFTD2XX instead of free libftdi" ON)

if(USE_FTD2XX)
  find_package(libFTD2XX)
endif(USE_FTD2XX)

if(LIBFTD2XX_FOUND)
  include_directories(${LIBFTD2XX_INCLUDE_DIR})
  add_definitions( -DUSE_FTD2XX )
else(LIBFTD2XX_FOUND)
  set(LIBFTD2XX_LIBRARIES "")
endif(LIBFTD2XX_FOUND)

しかし、単に*.cファイルと*.cppファイルを使用し、IDE(Codeblocks)から単純に分析して実行する場合、CMakeではなくC ++コードでこのライブラリを使用して設定するにはどうすればよいですか?また、これを常に使って修正できるようにしたいと思っています。

単に#define USE_FTD2XXメインファイルに入れるべきですか?

4

1 に答える 1

1

これを機能させる#define USE_FTD2XXには特定のリンカ オプション (つまり、リンクするライブラリ) も必要だからです。optionOFFcmake にある場合、特定のリンク オプションが に存在せずMakefile、ほとんどの場合、リンカー エラーが発生します。

そのため、CMake はすべてを自動的に処理しますが、オプションのオン/オフを切り替えるたびにメイクファイルを再生成する必要があります。

ヘッダーのみが含まれていて、リンクするライブラリがない場合 (Boost フレームワークの一部など)、ええ、定義するUSE_FTD2XXだけで十分です。

于 2012-11-07T11:43:18.250 に答える