我的postgres的C++函数为静态单例配置类使用了一个参数(到配置的路径),现在它是通过定义从Cmake设置的。我希望将路径指定为Main函数中的argv参数。然而,我的函数只是一个共享的(.so)库。有什么方法可以实现这样的功能吗?
现在我使用这个变量:
add_compile_definitions(CONFIG_PATH="/some/path/to/config.ini)
我还有一个用于创建postgres函数的SQL脚本:
CREATE OR REPLACE FUNCTION some() RETURNS text
AS 'postgres_Clibrary.so', 'someFunction'
LANGUAGE C;
和LOAD的功能如下:
psql -f create_functions.sql
我想将其更改为如下内容:
psql -f create_functions.sql -DPATH_TO_CONFIG="/some/path/to/config.ini"
有没有什么变种可以获得我想要的类似功能?如何在不重新编译的情况下完成它?
1条答案
按热度按时间6uxekuva1#
我认为这里的参数可以使用缺省值。
定义您的函数,使其具有额外的参数
config_path
。该参数必须是最后一个参数。然后您可以将该函数定义为现在您只需使用以下命令调用该函数
并且将用缺省值替换第二个参数。