目标平台仅支持STATIC库而不是共享库问题

时间:2012-07-05 07:01:25

标签: c++ linux gcc

我正在尝试使用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) 请在这方面帮助我。

1 个答案:

答案 0 :(得分:0)

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