【发布时间】:2015-09-16 03:52:05
【问题描述】:
我一直在尝试将 SOIL 链接到我正在使用 OpenGL 进行的项目。我正在运行优胜美地 10.10.4。
当我尝试在我的代码中使用 SOIL 库时,我收到以下错误(更新):
ld: warning: ignoring file /usr/local/lib/libSOIL.a,
file was built for archive which is not the architecture being linked (x86_64): /usr/local/lib/libSOIL.a
Undefined symbols for architecture x86_64:
"_SOIL_load_image", referenced from:
init() in main-93f615.o
ld: symbol(s) not found for architecture x86_64
我的步骤
我遵循了 SOIL 中的 make 文件指示的过程:make, make install。它将 libSOIL.a 文件放在 /usr/local/lib 中,将 SOIL.h 放在 /usr/local/include 中。我包含在我的代码中:
#include "SOIL.h"
int width, height;
unsigned char* image = SOIL_load_image("CrayonBox2.png", &width, &height, 0, SOIL_LOAD_RGB);
我的 Makefile 包含这个 g++ 目标:
g++ -I/usr/X11R6/include -I/usr/local/include -I/opt/local/include -L/usr/local/lib/ -L/opt/local/lib -lSOIL -framework GLUT -framework OpenGL -framework CoreFoundation -o main main.cpp
然后就出现了上面的错误。
然后我尝试了许多不同的方法:我安装了this guy's version of SOIL for Mac OS(将 libSOIL.a 和 libSOIL.dylib 放在 /opt/local/lib 中,将 SOIL.h 放在 /opt/local/include 中);我尝试添加'-arch 1386 -arch x86_64'as per this answer's suggestion。对于其中的每一个,我仍然收到与以前相同的错误。
关于可能是什么问题的任何建议?
【问题讨论】:
-
嗨,你解决了这个问题吗?我也有同样的问题。