内容概要: clion 中完成 makefile项目经典三步骤: ./autogen.sh ; ./configure ; make.
关键错误解决办法使得makefile项目有IDE可用。
clion完成前两步骤 autogen.sh ; configure
以libffi为例
clion 2021.2.2 运行在win10上
编译机centos8stream :c8s, 已经安装好 cmake、gdb、gcc、g++等构建工具
win10上clone libffi:
cd d:\
#https://github.com/libffi/libffi.git
git clone https://github.91chi.fun//https://github.com/libffi/libffi.git
cd d:\libffi\
git checkout v3.4.2
#切换到 tag v3.4.2
win10上 右键 d:\libffi\ 以clion打开
clion : settings -> ToolChains : + remote host : ssh 远端linux编译机c8s
clion : settings -> Makefile: pre-configuration command:
pwd ; env; rm -f aclocal.m4; sh -x ./autogen.sh && sh -x ./configure
远端编译机clone libffi
#https://github.com/libffi/libffi.git
cd /home/z/
git clone https://github.91chi.fun//https://github.com/libffi/libffi.git
#/home/z/libffi/.git
cd /home/z/libffi/
git checkout v3.4.2
#切换到 tag v3.4.2
clion “Reload Makefile Project”
此时远端命令会报错"autoreconf: libtoolize failed with exit status: 1"
报错原因是因为 clion将项目目录d:/libffi/上传到远端linux机的目录/tmp/libffi/的过程中, 对其中的某些文件做了修改或是自作聪明的生成了某些文件比如aclocal.m4是clion “Reload Makefile Project” 是自己生成的,但aclocal.m4应该是d:\libffi\autogen.sh生成的才对,所以必然报错
clion “Reload Makefile Project” 远端命令报错解决办法是 :
-
原始办法: 先 用 正确的目录 /home/z/libffi/ 覆盖 /tmp/libffi/, 再 clion “Reload Makefile Project”
-
改命令即可: 直接在 “pre-configuration command” 中 做 覆盖 , 即 "pre-configuration command:"改为:
#clion : settings -> Makefile: pre-configuration command:
pwd ; env; cp -rfv /home/libffi/* /tmp/libffi/ ; sh -x ./autogen.sh && sh -x ./configure
clion 完成make
此时简单了, clion已经列出了make目标列表,直接选择目标 并build即可