簡體   English   中英

獲取錯誤語法錯誤:意外“(”在Docker中構建C程序時

[英]Getting error syntax error: unexpected "("When building a C program in Docker

我正在嘗試在 Docker 容器中構建一個 C 程序,我只想創建一個二進制文件並在容器中執行它。 我在編譯期間沒有收到錯誤,但是在我的容器中運行在 Linux Alpine 上創建的二進制文件時,我收到以下錯誤消息:

/usr/jjj-app/bin # ./jjj-linux.out 
./jjj-linux.out: line 1: syntax error: unexpected "("
/usr/jjj-app/bin # 

注意:我正在從主機運行make build-linux ,在我的情況下是 macOS。

任何想法如何使用 Docker 在 Linux 環境中構建這個簡單的程序? 我可以使用 Alpine 或其他。

主程序

#include <stdio.h>

int main() {
   printf("Hello, World!");
   return 0;
}

生成文件

build-linux:
    docker build -t jjj-app .
    docker run --publish 8081:8080 jjj-app

Dockerfile

FROM alpine
RUN apk update
RUN apk add build-base
COPY . /usr/jjj-app
WORKDIR /usr/jjj-app
RUN gcc /usr/jjj-app/src/main.c -o /usr/jjj-app/bin/jjj-linux.out -r

gcc -r標志用於部分鏈接。 大概是為了稍后進行整個程序優化或其他鏈接器步驟。

如果你想要一個完成的可執行文件,你需要完成它的鏈接。

通過再次運行 gcc gcc /usr/jjj-app/bin/jjj-linux.out -o /usr/jjj-app/bin/jjj-linux.done.out

或者只是刪除-r

暫無
暫無

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

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