我正在尝试使用一个库,特别是 Xcode 4.2.1 中的 SOIL(简单 OpenGL 图像库)。在 Build Phases -> Link Library with Libraries 下,我添加了 SOIL zip 存档附带的所有 .h 和 .c 文件。
当我构建项目时,对于添加的每个 .h 和 .c 文件,我都会收到以下错误消息:
warning: skipping file '/Users/saw/XcodeProjects/Assignment01 copy/Assignment01/image_DXT.c' (unexpected file type 'sourcecode.c.c' in Frameworks & Libraries build phase)
和链接器错误:
"_SOIL_load_OGL_texture", referenced from: Init() in main.o Symbol(s) not found for architecture x86_64 Clang: error: linker command failed with exit code 1 (use -v to see invocation)
最佳答案
.h 和 .c 文件不是库。将 .c 文件添加到编译阶段,只需 #import
.h 文件在需要的地方。
为了验证链接,我已完成以下操作:
src
添加 10 个文件文件夹:SOIL.c、image_DXT.h、stbi_DDS_aug.h、SOIL.h、image_helper.c、
stb_image_aug.c、stbi_DDS_aug_c.h、image_DXT.c、image_helper.h 和
stb_image_aug.h。
给我的应用代表
applicationDidFinishLaunching:
方法:SOIL_load_OGL_texture( "img_test.png", SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID, 0 );
. 尽管有各种关于数据转换的编译器警告,但这些步骤会生成一个没有链接器错误的可执行文件。
关于xcode - 在 Xcode 4.2.1 项目中包含 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639251/