【问题标题】:Create one .so file from code in two sub-directories从两个子目录中的代码创建一个 .so 文件
【发布时间】:2013-11-10 21:52:00
【问题描述】:

我需要在 Linux Ubuntu 13.10 上创建一个 .so 文件,以便我可以使用 Python 进行包装(但我对 cmake 还是很陌生)。

我的目录中有wrap/

map.h
map.cpp

/noise 
  /include
  /src

/noiseutils
  noiseutils.h
  noiseutils.cpp

noise 是一个包含includesrc 目录的目录,noiseutils 里面有noiseutils.hnoiseutils.cpp 文件。

谁能帮我用 cmake 创建一个.so 文件——我对 C++ 很陌生?

【问题讨论】:

  • 您使用g++ 编译所有.cpp 文件,然后将它们链接在一起(同样,使用g++)。如果这没有帮助,那么谷歌“编译 C++ 代码教程”。
  • @H2CO3 我认为问题不仅仅是关于制作库,而是关于如何在 cmake 中做到这一点:tutorial, library

标签: c++ makefile cmake shared-libraries


【解决方案1】:

您需要在 CMakeLists.txt 配置文件中使用 add_library 命令。以下是当前命令参考:http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command:add_library

注意库名后面的第二个选项可以是“SHARED”,在 Linux 上提供您的 .so 文件。

源的目录布局并不重要;您只需提供 CMakeLists.txt 中 .cpp 文件的相对路径(例如,noise/src/noise.cpp)。并确保使用include_directories 命令包含所有包含 .h 文件的目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多