gpt4 book ai didi

c - 链接 apache 库

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:46 24 4
gpt4 key购买 nike

海湾合作委员会 4.4.2

我已经安装了 apache runtime portable。 apr-1.3.9

./configure
make
make test
make install

一切都安装好了。

我在我的 /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;
}

还有我的 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

但是,当我尝试编译时出现以下错误:

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.

但是,我不明白这一点,因为头文件在 apr-1 文件夹中称为 apr.h,而我正在链接的库称为 libapr-1.so

我知道我的路径是正确的,我已经仔细检查过它们。所以不明白为什么我不能链接它们。

非常感谢任何建议,

最佳答案

我的 Crystal 球告诉我你需要运行添加 -D_LARGEFILE64_SOURCECFLAGS,或者如果你在 linux 上:命令 getconf LFS_CFLAGS 为您提供了 CFLAGS 的确切列表以添加到您现有的 CFLAGS 以支持大文件。

最后,如果可能的话,您实际上应该使用 apr-1-config --cflags 来获取编译器标志列表。

关于c - 链接 apache 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2102821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com