libtorch和gflags的编译安装问题

这篇文章记录了gflags的安装、libtorch的安装以及过程中的一些问题

gflags说明

libtorch说明

gflags安装

libtorch安装

[bug] gflags和libtorch冲突问题

我们可能在CMakeList.txt文件中像这样链接gflags和libtorch的库(error):

target_link_libraries(pycvt "${TORCH_LIBRARIES}" gflags)
备注:其中的pycvt是程序名。

文件CMakeList.txt中的链接命令是没有问题的,但是我们make编译链接库的过程中,可能会出现下面的问题:

CMakeFiles/pycvt.dir/pycvt.cpp.o:在函数‘main’中:
pycvt.cpp:(.text+0xe1):对‘google::ParseCommandLineFlags(int*, char***, bool)’未定义的引用
CMakeFiles/pycvt.dir/pycvt.cpp.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
pycvt.cpp:(.text+0x4c5):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
pycvt.cpp:(.text+0x568):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
pycvt.cpp:(.text+0x60b):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
pycvt.cpp:(.text+0x6ae):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
pycvt.cpp:(.text+0x709):对‘google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)’未定义的引用
pycvt.cpp:(.text+0x72e):对‘google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)’未定义的引用
pycvt.cpp:(.text+0x79b):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
pycvt.cpp:(.text+0x83e):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用

出现这个问题的原因是libtorch中自带了gflags(在c10命名空间下),所以如果我们想使用gflags, 用libtorch自带的就可以了,比如gflags中是这样添加命令的:

DEFINE_string(model, "valid", "the torch model path");
gflags::ParseCommandLineFlags(&argc, &argv, true);

我们换成libtorch库下的gflags,应该是这样的:

C10_DEFINE_string(model, "valid", "the torch model path");
c10::ParseCommandLineFlags(&argc, &argv);
linux-any-commands 各种安装BUG记录

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×