首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从源代码编译了FreeImage。#包括FreeImage.h未找到

从源代码编译了FreeImage。#包括FreeImage.h未找到
EN

Stack Overflow用户
提问于 2009-12-12 01:09:09
回答 3查看 2.3K关注 0票数 0

我从MacOSX10.6上的/lib/FreeImage源代码编译了FreeImage 3.10.0。

我可以看到,在编译这些文件之后,复制了这些文件:

代码语言:javascript
复制
/usr/local/lib/libfreeimage-3.10.0.dylib
/usr/local/lib/libfreeimage.a
/usr/local/include/FreeImage.h

CMake找不到FreeImage,但我甚至找不到

代码语言:javascript
复制
#include <FreeImage.h>  // not found

我假设我需要将FreeImage.h添加到Mac环境路径,但我不知道哪个路径是正确的,因为有几个不同的文件存储环境路径变量。

要让我的FreeImage应用程序或CMake找到C++头文件,我需要做些什么?

这里是我的Makefile.osx的第一部分,这很有帮助:

代码语言:javascript
复制
# -*- Makefile -*-
# Mac OSX makefile for FreeImage

# This file can be generated by ./gensrclist.sh
include Makefile.srcs

# General configuration variables:
CC_PPC = gcc-4.0
CC_I386 = gcc-4.0
CPP_PPC = g++-4.0
CPP_I386 = g++-4.0
COMPILERFLAGS = -Os -fexceptions -fvisibility=hidden
COMPILERFLAGS_PPC = -arch ppc
COMPILERFLAGS_I386 = -arch i386
COMPILERPPFLAGS = -Wno-ctor-dtor-privacy
INCLUDE += 
INCLUDE_PPC = -isysroot /Developer/SDKs/MacOSX10.6.sdk
INCLUDE_I386 = -isysroot /Developer/SDKs/MacOSX10.6.sdk
CFLAGS_PPC = $(COMPILERFLAGS) $(COMPILERFLAGS_PPC) $(INCLUDE) $(INCLUDE_PPC)
CFLAGS_I386 = $(COMPILERFLAGS) $(COMPILERFLAGS_I386) $(INCLUDE) $(INCLUDE_I386)
CPPFLAGS_PPC = $(COMPILERPPFLAGS) $(CFLAGS_PPC)
CPPFLAGS_I386 = $(COMPILERPPFLAGS) $(CFLAGS_I386)
LIBRARIES_PPC = -Wl,-syslibroot /Developer/SDKs/MacOSX10.6.sdk
LIBRARIES_I386 = -Wl,-syslibroot /Developer/SDKs/MacOSX10.6.sdk
LIBTOOL = libtool
LIPO = lipo

更新:我按照尼古拉斯的指示将这些行添加到我的Makefile中,然后重新构建,但这不起作用:

代码语言:javascript
复制
CFLAGS = -I/usr/local/include
LDFLAGS = -L/usr/local/lib
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-14 15:45:48

INCLUDE +=”行看起来就像要攻击的那个:

代码语言:javascript
复制
INCLUDE += -I/usr/local/include

如果库也丢失了,那么您将需要找到另一行来添加“-L/usr/include/lib”。

票数 0
EN

Stack Overflow用户

发布于 2009-12-12 01:12:04

编译时必须将-I/usr/local/include添加到CFLAGS,并将-L/usr/local/lib添加到LDFLAGS。

票数 1
EN

Stack Overflow用户

发布于 2009-12-12 03:51:20

使用gcc -c file.c -o file.o -I /usr/local/include编译引用FreeImage.h的文件。

但是,当使用isysroot时,一切都变得相对于系统根(例如,您对/usr/local/include的参考实际上是isysroot/usr/local/include)。"gcc -v“将展示一切,让事情变得简单:

代码语言:javascript
复制
tmp diciu$ gcc -v -isysroot /Developer/SDKs/MacOSX10.6.sdk test.c
[..]
ignoring nonexistent directory "/Developer/SDKs/MacOSX10.6.sdk/usr/local/include"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1891836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档