通过Makefile和`dpkg-buildpackage -us -uc`进行埃菲尔编译会产生错误

时间:2018-12-12 12:46:28

标签: makefile dpkg eiffel

正在尝试为我的Eiffel应用程序创建一个debian软件包。

根结构中的makemake -j4(从dpkg-buildpackage调用的那个)执行无错误

但是 dpkg-buildpackage -us -uc调用时,调用Makefile时它会错误退出

In file included from big_file_C7_c.c:40:0:
lo322.c: In function ‘inline_F425_4447’:
lo322.c:97:5: error: format not a string literal and no format arguments [-Werror=format-security]
     syslog(arg1, arg2);
     ^~~~~~
cc1: some warnings being treated as errors

我的信息makefile如下:

#Build variables                                                 
MY_EC = $(shell which ec)                                                                         
BUILT_TARGET = EIFGENs/$(TARGET_NAME)/F_code/$(APP_NAME)

# This target will compile all files
all: build


build:                                                     
#       Checks eiffel compiler     
#       @echo "MY EC IS: ${MY_EC}"
        @if [ -z "${MY_EC}" ]; then
                echo "Compiler not found";
        else           
                echo "Eiffel compiler found";
        fi               
#       Compilation                        
        echo '---------->finalizing'                                    
        ec -finalize -config $(APP_NAME).ecf -target $(TARGET_NAME) || (echo "last command failed $$="; exit 1)
        cd $(FINAL_EXE_DIR); \
        echo '---------->Finish freezing';\
        finish_freezing || (echo "A problem occured during finish_freezing!!!"; exit 1)

1 个答案:

答案 0 :(得分:1)

此问题是由 EiffelStudio 18.11和更早版本中的类BottomNavigationViewHelper.enableNavigation(HomeActivity.this, bottomNavigationView); 的功能c_logging_write_log引起的,进行了以下调用:

LOG_WRITER_SYSTEM

替换为

syslog($priority, $msg);

(在syslog($priority, "%s", (char *) $msg); 中)并重新编译系统(从头开始,如果日志记录库被标记为只读)应该可以解决此问题。