0

Cmakeユーティリティを使用してRedhatLinux4.1.2マシンでc++プロジェクトをコンパイルしようとしています。CMakeLists.txtで、次のようにGenericUSMModulesを指定しました。

ADD_LIBRARY(
        GenericUSMModules SHARED 
          ../../Generic/GenericUSMModules/GMUSMActState.cpp
          ../../Generic/GenericUSMModules/GMUSMActState.h
          ../../Generic/GenericUSMModules/GMUSMAdditionalOfferChecksAndEdits.cpp
          ../../Generic/GenericUSMModules/GMUSMAdditionalOfferChecksAndEdits.h
          ../../Generic/GenericUSMModules/GMUSMAlignmentOfProductsConfigurationAndStrategicOrderManagerChecksAndEdits.cpp
          ../../Generic/GenericUSMModules/GMUSMAlignmentOfProductsConfigurationAndStrategicOrderManagerChecksAndEdits.h
          ../../Generic/GenericUSMModules/GMUSMAllSitePart2SiteChecksAndEdits.cpp

    )

makeコマンドを実行してc++プロジェクトをコンパイルすると、次のエラーが発生しました。「ライブラリGenericUSMModulesのADD_LIBRARYはSHAREDオプションとともに使用されますが、ターゲットプラットフォームはSTATICライブラリのみをサポートします。代わりにSTATICをビルドします。これにより問題が発生する可能性があります。」プラットフォームが共有ライブラリをサポートしていないことの意味を理解できません。コンパイル後、静的ライブラリ(GenericUSMModules.a)が生成され、ライブラリ(GenericUSMModules.so)が共有されないため、この点で私を助けてください。

4

1 に答える 1

0

多くの検索の結果、問題はRehHatLinuxマシンの互換性のないcmakeが原因であることがわかりました。RedHatに最新のcmake2.8.8をインストールしました。問題を解決し、共有ライブラリ(.soファイル)を生成するようになりました。

于 2012-07-07T06:57:17.210 に答える