【问题标题】:Using igraph on OSX installed via homebrew在通过 homebrew 安装的 OSX 上使用 igraph
【发布时间】:2018-04-02 07:49:05
【问题描述】:

我是 C 编程新手,想使用 igraph 库。

我是通过自制软件安装的。

brew install igraph

之后,我将 igraph c 教程中的第一个示例复制到 main.cpp 中,并将包含 igraph 更改为

#include "igraph/igraph.h"

Clion 建议使用 igraph 函数和类型。

尝试构建这个有错误消息:

/Applications/CLion.app/Contents/bin/cmake/bin/cmake --build 
/Users/username/development/graph_clustring/cmake-build-debug --target 
graph_clustring -- -j 4
[ 50%] Linking CXX executable graph_clustring
Undefined symbols for architecture x86_64:
  "_igraph_destroy", referenced from:
   _main in main.cpp.o
  "_igraph_diameter", referenced from:
   _main in main.cpp.o
  "_igraph_erdos_renyi_game", referenced from:
   _main in main.cpp.o
  "_igraph_rng_default", referenced from:
   _main in main.cpp.o
  "_igraph_rng_seed", referenced from:
   _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[3]: *** [graph_clustring] Error 1
make[2]: *** [CMakeFiles/graph_clustring.dir/all] Error 2
make[1]: *** [CMakeFiles/graph_clustring.dir/rule] Error 2
make: *** [graph_clustring] Error 2e

我认为我应该修复我的 CMake 文件,并帮助 CMake 通过自制软件找到安装的 lib。

CMake 文件:

cmake_minimum_required(VERSION 3.8)
project(graph_clustring)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)

add_executable(graph_clustring ${SOURCE_FILES})

【问题讨论】:

    标签: macos cmake homebrew igraph clion


    【解决方案1】:

    我能够通过将 target_link_libraries 命令添加到 CMake 来解决问题。它应该是这样的

    make_minimum_required(VERSION 3.8) 
    enter code here
    
    project(graph_clustring)
    
    set(CMAKE_CXX_STANDARD 11)
    
    set(SOURCE_FILES main.cpp)
    
    add_executable(graph_clustring ${SOURCE_FILES})
    target_link_libraries(graph_clustring, igraph.a)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 2018-09-12
      • 1970-01-01
      • 2023-04-06
      • 2022-01-04
      • 2023-04-04
      • 2015-05-12
      • 1970-01-01
      相关资源
      最近更新 更多