c – 如何编译在docker中使用内核函数的C代码并在容器中使用pci
发布时间:2020-12-16 07:13:09 所属栏目:百科 来源:网络整理
导读:我有一个Makefile,一些使用PCI设备的C代码 all: g++ -o executable main.cpp dragon.pb.cc -std=c++11 -O3 -I/usr/include/postgresql -I/usr/include/hiredis -lzmq -lprotobuf -lpthread -lpq -lhiredisclean: rm executable 它依赖于使用内核函数的C库.这
我有一个Makefile,一些使用PCI设备的C代码
all: g++ -o executable main.cpp dragon.pb.cc -std=c++11 -O3 -I/usr/include/postgresql -I/usr/include/hiredis -lzmq -lprotobuf -lpthread -lpq -lhiredis clean: rm executable 它依赖于使用内核函数的C库.这个libraby的Makefile是 # dist and build are folders,not phony targets .PHONY: all package clean all: dragon.pb.cc dragon_pb2.py package dragon.pb.cc: dragon.proto protoc --cpp_out=. dragon.proto dragon_pb2.py: dragon.proto protoc --python_out=. dragon.proto package: build clean: rm -f dragon.pb.* rm -f dragon_pb* rm -rf build rm -rf dist rm -f MANIFEST 这是我的Dockerfile FROM ubuntu:14.04 ENV PG_MAJOR 9.3 RUN apt-get update RUN apt-get install -y git make protobuf-compiler libhiredis-dev postgresql-server-dev-${PG_MAJOR} RUN apt-get install -y g++ RUN apt-get install -y libzmq-dev RUN apt-get install -y libprotobuf-dev RUN apt-get install -y linux-headers-$(uname -r) ADD deployment_key /root/.ssh/id_rsa RUN chmod 600 /root/.ssh/id_rsa RUN echo "StrictHostKeyChecking no" >> /root/.ssh/config RUN echo >> /root/.ssh/config RUN echo "Host bitbucket.org" >> /root/.ssh/config RUN mkdir -p /usr/src/app/ WORKDIR /usr/src/app/ RUN git clone git@bitbucket.org:opticsdevelopment/dragon-protocols.git WORKDIR ./dragon-protocols RUN make dragon.pb.cc RUN cp ./dragon.pb.* ../ COPY . /usr/src/app WORKDIR ../ RUN git clone git@bitbucket.org:opticsdevelopment/dragon-module.git WORKDIR ./dragon-module RUN make all WORKDIR ../ RUN make EXPOSE 5570 CMD ["dragon"] 现在的问题是安装linux-headers.不知怎的,它找不到标题 E: Unable to locate package linux-headers-3.13.0-19-generic E: Couldn't find any package by regex 'linux-headers-3.13.0-19-generic' 解决方法
如果你的应用程序可以使用任何通用linux头编译
在Dockerfile中更改 RUN apt-get install -y linux-headers-$(uname -r) 只是 RUN apt-get install -y linux-headers-generic 或者如果您需要与主机系统相同的特定一个 在您的主机系统上: sudo apt-get install linux-headers-$(uname -r) 现在你有了内核头文件:/usr/src / linux-headers – $(uname -r)/ include 现在在您的docker container run命令中,链接该卷就像 -v /usr/src/linux-headers-$(uname -r)/include:/usr/src/linux-headers-$(uname -r)/include (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |