簡體   English   中英

通過Makefile和`dpkg-buildpackage -us -uc`進行埃菲爾編譯會產生錯誤

[英]Eiffel compilation through Makefile and `dpkg-buildpackage -us -uc` generating an error

我正在嘗試為我的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)

該問題是由功能引起c_logging_write_log類的LOG_WRITER_SYSTEMEiffelStudio 18.11和更早版本 ,讓下面的調用:

syslog($priority, $msg);

替換為

syslog($priority, "%s", (char *) $msg);

(在$ISE_EIFFEL/library/runtime/logging/writers/log_writer_system.e )並重新編譯系統(從頭開始,如果日志記錄庫被標記為只讀)應該可以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM