所以,我在C中编写了一个使用glib哈希表函数的应用程序。不幸的是,因为Homebrew将glib安装到一个子目录中,所以预先编写的包含被破坏,并且完全无法编译。部分问题与glib必须隐藏的趋势有关,但我知道如何解决这个问题,并编写了一个有效的makefile。但是,我仍然希望像往常一样能够使用我的IDE,这似乎可能在将来引起其他问题,所以我想知道是否有人有任何建议。 下面是makefile,cmakelists.txt和错误。
请注意我的问题不包括CMake,这是因为Homebrew已将其安装到/usr/lib/local/glib-2.0/glib.h
,并且它包含的头文件位于/usr/lib/local/glib-2.0/glib/
下。不幸的是,所有的glibs头都包括其他的
#include <glib/galloca.h>
#include <glib/garray.h>
#include <glib/gasyncqueue.h>
#include <glib/gatomic.h>
#include <glib/[...]>
这些应该是
#include <glib-2.0/glib/galloca.h>
#include <glib-2.0/glib/garray.h>
e.t.c,你明白了
# Compiler
CC = gcc
#CFlags
CFlags = -g -Wall -I/usr/local/Cellar/glib/2.46.2/include/glib-2.0 -I/usr/local/Cellar/glib/2.46.2/lib/glib-2.0/include -I/usr/local/opt/gettext/include -L/usr/local/Cellar/glib/2.46.2/lib -L/usr/local/opt/gettext/lib -lglib-2.0 -lintl -D_REENTRANT -I/usr/local/Cellar/gtk+3/3.18.9/include/gtk-3.0 -I/usr/local/Cellar/glib/2.46.2/include/gio-unix-2.0/ -I/usr/local/Cellar/cairo/1.14.6_1/include/cairo -I/usr/local/Cellar/libepoxy/1.3.1/include -I/usr/local/Cellar/pango/1.38.1/include/pango-1.0 -I/usr/local/Cellar/harfbuzz/1.2.4/include/harfbuzz -I/usr/local/Cellar/pango/1.38.1/include/pango-1.0 -I/usr/local/Cellar/atk/2.18.0_1/include/atk-1.0 -I/usr/local/Cellar/cairo/1.14.6_1/include/cairo -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I/usr/local/Cellar/fontconfig/2.11.1_2/include -I/usr/local/Cellar/freetype/2.6.3/include/freetype2 -I/usr/local/Cellar/libpng/1.6.21/include/libpng16 -I/usr/local/Cellar/gdk-pixbuf/2.32.3/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.21/include/libpng16 -I/usr/local/Cellar/glib/2.46.2/include/glib-2.0 -I/usr/local/Cellar/glib/2.46.2/lib/glib-2.0/include -I/usr/local/opt/gettext/include
TARGET = main
all: $(TARGET)
$(TARGET): $(TARGET).c
$(CC) $(CFlags) -o $(TARGET) $(TARGET).c
clean:
$(RM) $(TARGET)
/Applications/CLion.app/Contents/bin/cmake/bin/cmake --build /Users/ennis/Library/Caches/CLion12/cmake/generated/85d4a0ab/85d4a0ab/Debug --target all -- -j 4
[ 50%] Building C object CMakeFiles/TaskAppBuilder_C.dir/main.c.o
In file included from /Users/ennis/TaskAppBuilder-C/main.c:4:
In file included from /Users/ennis/TaskAppBuilder-C/main.h:15:
In file included from /Users/ennis/TaskAppBuilder-C/glib.h:30:
/usr/local/include/glib-2.0/glib.h/galloc.h:32:10: fatal error: 'galloc.h' file not found
#include <galloc.h>
^
1 error generated.
make[2]: *** [CMakeFiles/TaskAppBuilder_C.dir/main.c.o] Error 1
make[1]: *** [CMakeFiles/TaskAppBuilder_C.dir/all] Error 2
make: *** [all] Error 2
cmake_minimum_required(VERSION 3.3)
project(TaskAppBuilder_C)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11")
set(SOURCE_FILES main.c main.h)
add_executable(TaskAppBuilder_C ${SOURCE_FILES} main.c main.h)