[英]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.