5

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

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

是的。我回顾了是否可以让 CMake 构建同一库的静态和共享版本?. 但是,我不想使用add_libraryand 枚举所有源文件,而是想使用libc++'s CMakeList.txt- using所采用的方法APPEND

我可以通过将ON下面的第 40 行替换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文件以便同时构建两者?

4

1 回答 1

3

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

一旦我有时间提高我对CMake.

于 2013-04-06T02:55:48.713 回答