首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当自定义库名称与系统库相同时,CMake循环依赖项错误

当自定义库名称与系统库相同时,CMake循环依赖项错误
EN

Stack Overflow用户
提问于 2010-06-04 21:40:04
回答 2查看 7.8K关注 0票数 5

我正在编写一个CMakeLists.txt文件来构建我的C++项目,该项目由

functions.

  • hybris::一个带有导出的的共享库,一个链接到libhybris.so
  1. 的可执行文件--一组连接到libhybris.so

的各种共享库

问题是,libhybris.so依赖于libpcre (正则表达式功能),所以我有以下语句:

代码语言:javascript
运行
复制
# libhybris.so generation
add_library( libhybris 
             SHARED 
             ${LIB_SOURCES} )

...

# Needed libraries
target_link_libraries( libhybris 
                       dl 
                       pcre 
                       pthread
                       readline )

第3点中的一个共享库名为pcre.so,因此我还有以下内容:

代码语言:javascript
运行
复制
add_library( pcre SHARED ${PCRE_SOURCES} )

...

target_link_libraries( pcre
                       dl 
                       pcre 
                       curl
                       pthread
                       readline
                       ffi 
                       libhybris )

因此,当我运行一个"cmake .“时,我有以下错误:

代码语言:javascript
运行
复制
-- Configuring done
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
  "libhybris" of type SHARED_LIBRARY
    depends on "pcre"
  "pcre" of type SHARED_LIBRARY
    depends on "libhybris"
At least one of these targets is not a STATIC_LIBRARY.  Cyclic dependencies are allowed only among static libraries.

因为CMake认为libhybris.so pcre依赖项(系统libpcre.so)与我的pcre.so是相同的,而它显然不是。

如何在不更改名称的情况下解决问题?

EN

Stack Overflow用户

发布于 2010-06-04 22:27:37

这取决于您的开发环境。您可以设置一个构建路径来克服这些困难。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2977989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档