从大型 github 项目链接共享库
Linking a shared library from a large github project
我正在尝试使用以下 github 项目 https://github.com/apache/parquet-cpp。我能够构建它并且 .so 文件在 parquet-cpp/build/latest 中可用。我将 .so 文件(libparquet 和已构建的 libarrow)复制到一个单独的目录中,并编写了一个简单的 hello world,只需将库导入为:
#include <arrow/io/file.h>
#include <parquet/api/reader.h>
#include <parquet/api/writer.h>
现在我运行
g++ -Wall test.cpp -L. -lparquet -larrow
然而,这会引发错误,因为无法找到 arrow/parquet 的 .h 文件。我做错了什么?
您忘记在编译指令中包含头文件的路径。需要找到包含parquet/api/reader.h
的目录,在编译命令中包含
g++ -Wall -I path_containing_header test.cpp -L. -lparquet -larrow
您可以使用多个 -I
指令包含多个目录。
我正在尝试使用以下 github 项目 https://github.com/apache/parquet-cpp。我能够构建它并且 .so 文件在 parquet-cpp/build/latest 中可用。我将 .so 文件(libparquet 和已构建的 libarrow)复制到一个单独的目录中,并编写了一个简单的 hello world,只需将库导入为:
#include <arrow/io/file.h>
#include <parquet/api/reader.h>
#include <parquet/api/writer.h>
现在我运行
g++ -Wall test.cpp -L. -lparquet -larrow
然而,这会引发错误,因为无法找到 arrow/parquet 的 .h 文件。我做错了什么?
您忘记在编译指令中包含头文件的路径。需要找到包含parquet/api/reader.h
的目录,在编译命令中包含
g++ -Wall -I path_containing_header test.cpp -L. -lparquet -larrow
您可以使用多个 -I
指令包含多个目录。