我一直在尝试将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
然后就出现了上面的错误。
然后我尝试了许多不同的事情:我安装了这个人的 Mac OS 版本的 SOIL(将 libSOIL.a 和 libSOIL.dylib 放在 /opt/local/lib 中,将 SOIL.h 放在 /opt/local/include 中);我尝试'-arch 1386 -arch x86_64'
按照这个答案的建议添加添加。对于这些中的每一个,我仍然收到与以前相同的错误。
关于可能是什么问题的任何建议?