build - cmake 创建一个共享对象

我有三个文件:

lib.c lib.h => 它们应该被构建为 .so 文件
client.c => 这应该被构建为可执行文件。
在 client.c 中,我包含 lib.h 文件,以便获取 lib.c 下定义的函数的声明

谁能告诉我我应该使用的确切 CMakeLists 文件,以便源区域不会被 Cmake 的临时文件和二进制文件和库(我相信是 windows 的情况下为 .dll)在单独的构建和二进制目录中生成?

最佳答案

此解决方案不会创建 .so 文件,而是创建一个 cmake 等效文件,以便进一步包含在 cmake 中。
我正在寻找一种解决方案,将提供与此等效的解决方案:

g++ -shared -Wl,-soname,plugin_lib.so.1 -o plugin_lib.so plugin_lib.o

这将生成一个 plugin_lib.so,可以在运行时使用 dlopen 动态加载。

解决方案缺少“共享”选项,如下所示:

ADD_LIBRARY(mylib SHARED ${mylibSRCS})

https://stackoverflow.com/questions/11293572/

相关文章:

java - ANT 等待文件创建

android - 错误 JSON.simple : java. util.zip.ZipExcep

build - 如何在 intellij idea 中构建一个 java swing 应用程序

maven-2 - 在 Maven 中覆盖 'clean' 生命周期

ant - 什么是好的 Ant 目标命名约定?

android - 使用ant构建Android项目时如何在build.properties中指定多

ios - Xcode 4.5 中的代码签名是如何完成的

build - 如何重建已下载的已编辑 perl6 模块?

xcode - 如何在 Xcode 项目包中排除图像文件,有条件地用于发布版本?

android - 使用 Eclipse 从命令行构建 Android 项目