我正在尝试使用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) 请在这方面帮助我。
答案 0 :(得分:0)
经过大量搜索后,我发现问题是由于RehHat Linux机器上的cmake不兼容造成的。 我在RedHat上安装了最新的cmake 2.8.8。它解决了问题,现在它生成共享库(.so文件)。