gcc 4.4.2
我已经安装了apache runtime portable.APR-1.3.9
./configure
make
make test
make install
Run Code Online (Sandbox Code Playgroud)
一切安装都很好.
我的/usr/local/apr/lib所有库和包含在下面/usr/local/apr/include/apr-1
我有一个简单的main.c程序来测试:
#include <stdio.h>
#include <apr.h>
int main(void)
{
printf(" == Start of program ==\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的makefile:
OBJECT_FILES = main.o
CC = gcc
CFLAGS = -Wall -g -D_LARGEFILE64_SOURCE
LIBS_PATH = -L/usr/local/apr/lib
INC_PATH = -I/usr/local/apr/include/apr-1
LIBS = -lapr-1
test_apr: $(OBJECT_FILES)
$(CC) $(CFLAGS) $(OBJECT_FILES) $(LIBS_PATH) $(INC_PATH) $(LIBS) -o test_apr
main.o: main.c
$(CC) -c $(CFLAGS) $(INC_PATH) $(LIBS_PATH) $(INC_PATH) main.c
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译时,我收到以下错误:
gcc -c -I/usr/local/apr/include/apr-1 -L/usr/local/apr/lib -I/usr/local/apr/include/apr-1 main.c
In file included from main.c:3:
/usr/local/apr/include/apr-1/apr.h:285: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘apr_off_t’
make: *** [main.o] Error 1
make: Target `test_apr' not remade because of errors.
Run Code Online (Sandbox Code Playgroud)
但是,我不明白这一点,因为头文件在apr-1文件夹中称为apr.h,而我链接的libary称为libapr-1.so
我知道我的路径是正确的我仔细检查它们.所以无法理解为什么我无法将它们联系起来.
非常感谢任何建议,
我的水晶球告诉我,你需要运行添加-D_LARGEFILE64_SOURCE到CFLAGS,或者如果你在Linux上:该命令getconf LFS_CFLAGS给你的确切列表CFLAGS添加到您现有的CFLAGS大文件支持.
最后,apr-1-config --cflags如果可能,您应该实际使用获取编译器标志列表.
| 归档时间: |
|
| 查看次数: |
1918 次 |
| 最近记录: |