gpt4 book ai didi

c++ - 在C++中使用XGBoost时的 undefined symbol

转载 作者:行者123 更新时间:2023-12-02 10:11:32 25 4
gpt4 key购买 nike

我想在自己的XGBoost项目中包括C++库。这是我遵循的步骤:

  • 使用git从GitHub下载。
  • 使用make -j4
  • 编译 XGBoost文件
  • 在XCode中,我将XGBoost路径添加到路径搜索中:search-paths
  • 在我的项目中,当我过去包含它时,可以找到XGBoost文件。
    但是,当我执行代码时,这是错误消息:enter image description here

  • 它说c_api.h中带有函数名的 undefined symbol
    有谁知道如何解决这个问题?
    如果我想在 Linux中编译这些文件,我应该包括哪个命令以链接 XGBoost库。非常感谢你的帮助!!

    最佳答案

    您设置了DYLD_LIBRARY_PATH吗?
    如果要在Linux上编译。说您在家中进行了以下操作:

    git clone --recursive https://github.com/dmlc/xgboost
    cd xgboost
    mkdir build
    cd build
    cmake ..
    make -j4
    您包含的路径是:
    -I ~/xgboost/include/xgboost
    该库将libxgboost.so将存在于〜/ xgboost / lib中
    为了与此库链接,您必须添加:
    -L ~/xgboost/lib -lxgboost
    由于它是一个共享库(.so),因此您必须修改LD_LIBRARY_PATH并将其导出。
    export LD_LIBRARY_PATH=~/xgboost/lib:$LD_LIBRARY_PATH
    ps:如果您不想修改LD_LIBRARY_PATH,另一个解决方案是添加
    -Wl,-rpath=~/xgboost/lib

    关于c++ - 在C++中使用XGBoost时的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63353699/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com