SAS9.3 PROC FCMP无法保存用户定义的函数

SAS9.3 PROC FCMP无法保存用户定义的函数,sas,proc,fcmp,Sas,Proc,Fcmp,我想使用proc fcmp在SAS9.3中定义我自己的函数。 操作系统是AIX64位的。 这是我的代码(reg_func.sas): 但是在运行sas reg_func.sas之后,我收到了一些警告 有人能帮忙吗?谢谢 解决了!参考 关键是cmplib选项,以下是我的代码: libname mylib 'H:\saslib\testlib'; proc fcmp outlib=mylib.funcs.rule; function calc(var);

我想使用proc fcmp在SAS9.3中定义我自己的函数。 操作系统是AIX64位的。 这是我的代码(reg_func.sas):

但是在运行sas reg_func.sas之后,我收到了一些警告

有人能帮忙吗?谢谢

解决了!参考
关键是cmplib选项,以下是我的代码:

    libname mylib 'H:\saslib\testlib';
    proc fcmp outlib=mylib.funcs.rule;
      function calc(var);
         newvar=log(var);
         return(newvar);
      endsub;
     function gen_str(var1 $, var2 $, var3 $) $100;
        length newvar $100;
        newvar=catx('#', var1, var2, var3);
        return(newvar);
      endsub;
    Run;

    /*list the source code*/
    Options cmplib=_null_; 
    proc fcmp library=mylib.funcs;
      listfunc calc gen_str;
      run;
    Quit;

    /*using func*/
    options cmplib=mylib.funcs; 
      data _null_;
        numret=calc(20);
       charret=gen_str('what', 'is', 'your');
       put numret= charret=;
    run;

    /*delete the func*/
    options cmplib=mylib.funcs; 
    proc fcmp outlib=mylib.funcs.rule;
    deletefunc calc;
    run;
    quit;

您尝试过不同的大纲视图选项吗?@Reeza,谢谢,我尝试过这种方式,在我的程序fcmp代码之前添加[libname mylib'/home/ap/sas/mydir';]。它是有效的。但还有另一个问题,当我使用deletefunc时,sas告诉我:无法找到要删除的子例程“GEN_SUB_RULE”。请发布您如何尝试删除它。没有看到代码,唯一的假设是你做错了:)@Reeza,这是我的删除代码:
proc fcmp outlib=mylib.funcs.rule;deletefunc gen_sub_规则;跑退出这是警告,不是错误。我不知道如何摆脱它。你的函数真的被删除了吗?
    libname mylib 'H:\saslib\testlib';
    proc fcmp outlib=mylib.funcs.rule;
      function calc(var);
         newvar=log(var);
         return(newvar);
      endsub;
     function gen_str(var1 $, var2 $, var3 $) $100;
        length newvar $100;
        newvar=catx('#', var1, var2, var3);
        return(newvar);
      endsub;
    Run;

    /*list the source code*/
    Options cmplib=_null_; 
    proc fcmp library=mylib.funcs;
      listfunc calc gen_str;
      run;
    Quit;

    /*using func*/
    options cmplib=mylib.funcs; 
      data _null_;
        numret=calc(20);
       charret=gen_str('what', 'is', 'your');
       put numret= charret=;
    run;

    /*delete the func*/
    options cmplib=mylib.funcs; 
    proc fcmp outlib=mylib.funcs.rule;
    deletefunc calc;
    run;
    quit;