c++ - 目标平台仅支持静态库而不支持共享库问题

标签 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 选项一起使用, 但目标平台仅支持静态库。相反,将其构建为静态。 这可能会导致问题。” 我无法理解平台不支持共享库的含义。 因为编译后,它生成静态库(GenericUSMModules.a)而不是共享库(GenericUSMModules.so) 请在这方面帮助我。

最佳答案

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

关于c++ - 目标平台仅支持静态库而不支持共享库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339277/

相关文章:

c++ - GraphicsView 上的 Qt QColor 和 QBrush?

c++ - 从排序数组中删除重复项

c++ - GMP库函数

linux - awk split 将整个字符串添加到数组位置 1(原因未知)

c++ - 将 time_t 转换为字符串

c++ - 无法构建以下请求的语言 : c++ (LINUX, GCC)

linux - 从进程 (Nagios) 调用时,Perl 脚本无法打开 root 拥有的文件

c++ - GCC 的 <experimental/ranges> 过滤器 View 无法使用无限范围 iota() 进行编译

linux -/用户/bin/ld : Cannot find SDL?

c++ - FreeBSD 上的 R feather 包编译错误(g++)