Closed Gavin1937 closed 5 months ago
目前 gflag 相关文件是放在 paddle_inference 压缩包里的。你打算如何替换为新的文件?或者直接将更改后的 gflag 放在本仓库中?
paddle_inference 文件夹里的 gflags 没有任何cmake文件,只有头文件和库文件。所以PaddleOCR是直接让cmake去把文件找出再直接链接进项目里的。
我们可以直接弃用这些文件。把新的gflags当成一个新的库用cmake加载并链接进来。CMake会自动寻找到gflags、编译、并链接进整个项目里。
具体需要修改的是,把下面两行去掉
接着在第二行的下面加上加载gflags的代码:
(可选)最后可以在整个CMakeLists的开头加上一个调整cmake policy的设置。
CMake Warning (dev) at CMakeLists.txt:1 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
CMAKE_PROJECT_VERSION
CMAKE_PROJECT_VERSION_MAJOR
CMAKE_PROJECT_VERSION_MINOR
CMAKE_PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
如果你觉得没问题我就发个PR加上它
OK,感觉可行,麻烦加上吧。
尽量用离线的方式吧,直接将文件放在仓库里,避免构建的过程中依赖网络。
PaddleOCR-json 的
-help
命令会自动输出这些命令的源码文件路径。像这样:这些路径一是很丑,二也有一定的暴露隐私的风险。我觉得应该将它们去掉。
这些帮助信息是由 paddle_inference 文件夹自带的 google::gflags 库自动生成的。
可惜的是它已经两年没有更新了,并且也没有功能去隐藏这些路径。
不过好在这也不是什么很复杂的功能。我fork并魔改了一下代码,已经实现这个功能了。在我仓库的mod branch下
可以通过设置CMake参数来隐藏路径名
因为这个项目底层的PaddleOCR有大量使用gflags,即使之后重构这个项目也无法轻易的更换其他C++参数解析库。 所以我建议可以更新一下gflags库,只需要更改一下CMakeLists.txt来更换所link的gflags库就行了。
使用”Basename“选项改完之后长这样: