【问题标题】:How to disable generation of shared objects (.so's) of a third-party library(mysql) which uses cmake如何禁用使用 cmake 的第三方库(mysql)的共享对象(.so)的生成
【发布时间】:2011-09-09 21:12:35
【问题描述】:

除了静态库(.a's)之外,我正在尝试build MySql Connector C(6.0.2) from source 和默认构建导出.so's。我想抑制.so 的生成并尝试设置BUILD_SHARED_LIBS to OFF(这不起作用)。还尝试将CMAKE_LIBRARY_OUTPUT_DIRECTORY 设置为/dev/null(这也不起作用)。有没有人对如何解决这个问题有任何建议?

我正在使用 cmake-2.8.4(在 Ubuntu 上),我的 cmake 调用看起来像这样:

cmake -G "Unix Makefiles"    
      -DCMAKE_INSTALL_PREFIX=/path/to/install/root/  
      -DCMAKE_C_FLAGS="-m64"  
      -DBUILD_SHARED_LIBS:BOOL=OFF 
      [-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=/dev/null]

【问题讨论】:

  • 试图复制您的问题,但我什至无法在 ubuntu 10.04 (gcc 4.4.3)、cmake 2.8.0 上构建它
  • 您遇到了什么错误/问题?顺便说一句 - 刚刚也将这个添加到问题中 - 我正在构建(或者更确切地说是尝试构建)mysql-connector-c-6.0.2

标签: mysql c build makefile cmake


【解决方案1】:

只需grep CMakeLists.txt 文件中的ADD_LIBRARY 并注释掉添加共享目标的那个

【讨论】:

  • 我不希望对 CMakeLists.txt 进行更改,因为它是一个第三方库,我们正在使用我们的构建脚本进行包装。所以理想情况下,能够从库分发之外控制它会很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多