Compiling

在 FreeBSD 上建構 Snapwm(gcc 和 clang 的問題)?

  • April 16, 2014

根據 FreeBSD,從版本 10 開始,他們使用 Clang/LLVM 而不是 gcc。從表面上看,一切都應該像以前一樣表現得更好。但我比我想要的更多地面對這個現實。有些程式碼不能這樣編譯。

例如,我嘗試編譯Snapwm。第一個本機 FreeBSDmake實際上是pmake,這是不可能的。gmake我們的選擇也是如此。但是在程式碼上發出gmake會產生這個錯誤:

gcc -g -std=c99 -pedantic -Wall -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -c -o snapwm.o snapwm.c gmake: gcc: Command not found gmake: *** [snapwm.o] Error 127

所以問題變成瞭如何編譯遭受這些挫折的程式碼。

有時需要一些更新檔。我已經創建了您可以應用並可以使用gmake. 我沒有嘗試編譯snapwm我只測試過的建構過程。

diff -ur Nextwm-master.orig/Makefile Nextwm-master/Makefile
--- Nextwm-master.orig/Makefile 2014-03-12 19:46:34.000000000 +0100
+++ Nextwm-master/Makefile  2014-04-16 13:07:08.000000000 +0200
@@ -1,12 +1,12 @@
-CFLAGS+= -g -std=c99 -pedantic -Wall -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2
+CFLAGS+= -g -std=c99 -pedantic -Wall -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/usr/local/include/
LDADD+= -lX11 -lXinerama
-LDFLAGS= -Wl,-O1,--sort-common,--as-needed,-z,relro
+LDFLAGS= -Wl,-O1,--sort-common,--as-needed,-z,relro,-L/usr/local/lib
EXEC=snapwm

PREFIX?= /usr/local
BINDIR?= $(PREFIX)/bin

-CC=gcc
+CC=clang

all: $(EXEC)

diff -ur Nextwm-master.orig/snapwm.c Nextwm-master/snapwm.c
--- Nextwm-master.orig/snapwm.c 2014-03-12 19:46:34.000000000 +0100
+++ Nextwm-master/snapwm.c  2014-04-16 13:03:24.000000000 +0200
@@ -27,6 +27,7 @@
//#include <X11/keysym.h>
/* For a multimedia keyboard */
#include <X11/XF86keysym.h>
+#include <sys/signal.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>

引用自:https://unix.stackexchange.com/questions/125050