【问题标题】:Building both static and shared libs for LLVM libc++ 3.3为 LLVM libc++ 3.3 构建静态库和共享库
【发布时间】:2013-03-28 03:04:46
【问题描述】:

来自 SVN 的最新 LLVM libc++ 3.3 带有 CMakeLists.txt。我是 CMake 新手,但昨天我学习到能够在 RHEL 6.4 x86_64 主机上构建libc++ check-out。

此外,我能够在上述CMakeLists.txt 中添加足够多的CPack 相关命令以生成libcxx-3.3.svn-0.el6.x86_64.rpm。但很可能由于是CMake 的新手,我无法同时构建静态库和共享库。

是的。我查看了Is it possible to get CMake to build both a static and shared version of the same library?。但是,我不想使用add_library 并枚举所有源文件,而是使用libc++CMakeList.txt 采用的方法 - 使用APPEND

我可以通过将下面第 40 行中的 ON 替换为 OFF 来生成静态库

40  option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
41 

或者我可以保持原样并构建一个共享库。

我还修改了以下行,例如删除 NOT 或注释掉第 232 和 233 行。但无论我尝试了什么,我似乎都无法让静态库与共享库一起构建。

232  if (NOT LIBCXX_ENABLE_SHARED)
233    list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC)
234  endif()

如何调整CMakeList.txt 文件以便同时构建两者?

【问题讨论】:

    标签: c++ cmake clang libc++ cpack


    【解决方案1】:

    好的。我决定使用add_library 命令的“久经考验”的方法,列出所有*.cpp。它适用于 OOTB,因此我认为它是一种解决方案。

    一旦我有时间提高我对CMake 的熟练程度,我将再次访问此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多