0

我正在尝试使用 Cmake 实用程序在 Redhat Linux 4.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

经过大量搜索后,我发现该问题是由于 RehHat Linux 机器上的 cmake 不兼容造成的。我在 RedHat 上安装了最新的 cmake 2.8.8。它解决了问题,现在它生成共享库(.so 文件)。

于 2012-07-07T06:57:17.210 回答