我想在自己的XGBoost
项目中包括C++
库。这是我遵循的步骤:
GitHub
下载。 XGBoost
文件XGBoost
文件。但是,当我执行代码时,这是错误消息:
它说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/