如何编写CmakeLists.txt以在C中包含xgboost

时间:2018-08-27 17:16:51

标签: c++ cmake xgboost

我是Mac OS系统的新手。最近,我正在做一个项目,要求使用xgboost进行c语言预测。我的问题是如何正确编写CmakeLists.txt文件。

我已根据指导文件逐步进行了操作。实际上,我使用以下命令使cpp正确运行:

vendor

但是,当我转到CmakeLists.txt时,发生了一些错误。这是错误代码:

vendor

这是CmakeLists.txt的代码:

g++ main.c -Ixgboost/include -Ixgboost/rabit/include xgboost/lib/libxgboost.a xgboost/rabit/lib/librabit_empty.a xgboost/dmlc-core/libdmlc.a

我知道有一些有关“ dyld:未加载库:”的主题。但我不知道如何在此特定任务中执行此操作。另外,我不知道写cmakelists是否是我的错(因为使用g ++没有错误)。如果有人可以告诉我如何解决此错误,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您将需要找到所有增强库;

$ otool -L exefile
exefile:
        @executable_path/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

您需要为每个libboost_something.dylib

$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile

如果这不起作用,则可以使用一种替代方法,即使用静态版本的Boost而不是动态版本。

set(Boost_USE_STATIC_LIBS ON)