我正在尝试使用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与共享选项一起使用,但目标平台仅支持静态库。请改为静态生成。这可能会导致问题。”我不能理解平台不支持共享库的含义。因为编译后生成的是静态库(GenericUSMModules.a)而不是共享库(GenericUSMModules.so),请在这方面给我帮助。
发布于 2012-07-07 14:57:17
经过大量的搜索,我发现这个问题是由于RehHat Linux机器上的cmake不兼容造成的。我在RedHat上安装了最新的cmake 2.8.8。它解决了这个问题,现在它生成共享库(.so文件)。
https://stackoverflow.com/questions/11339277
复制相似问题