【发布时间】:2012-07-06 14:02:33
【问题描述】:
当我在 xcode 中编译 c++ 时,如何让编译器识别这些“符号”。这是错误(我感觉它忽略了框架然后为缺少的框架提供错误)
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/IL.framework/IL, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/Vorbis.framework/Vorbis, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/FreeType.framework/FreeType, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/Lua.framework/Lua, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/Ogg.framework/Ogg, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/physfs.framework/physfs, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/libmodplug.framework/libmodplug, missing required architecture x86_64 in file
ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks/mpg123.framework/mpg123, missing required architecture x86_64 in file
Undefined symbols for architecture x86_64:
"_luaL_newstate", referenced from:
_SDL_main in love-33750B9883D2854D.o
love::thread::Thread::ThreadThread::SDL_main() in Thread.o
"_luaL_openlibs", referenced from:
_SDL_main in love-33750B9883D2854D.o
love::thread::Thread::ThreadThread::SDL_main() in Thread.o
"_lua_createtable", referenced from:
_SDL_main in love-33750B9883D2854D.o
love::luax_register_module(lua_State*, love::WrappedModule const&) in runtime.o
love::luax_insistglobal(lua_State*, char const*) in runtime.o
love::luax_insist(lua_State*, int, char const*) in runtime.o
_auxiliar_newclass in auxiliar.o
_global_select in select.o
_make_assoc in select.o
...
"_lua_pushstring", referenced from:
_SDL_main in love-33750B9883D2854D.o
love::luax_register_type(lua_State*, char const*, luaL_Reg const*) in runtime.o
_auxiliar_newclass in auxiliar.o
_auxiliar_tostring in auxiliar.o
_auxiliar_add2group in auxiliar.o
_auxiliar_getgroupudata in auxiliar.o
_global_create in tcp.o
...
"_lua_rawseti", referenced from:
_SDL_main in love-33750B9883D2854D.o
love::luax_table_insert(lua_State*, int, int, int) in runtime.o
love::physics::box2d::Body::getFixtureList(lua_State*) const in Body-3A4BFE6EB3B8CF74.o
love::physics::box2d::World::getBodyList(lua_State*) const in World.o
love::physics::box2d::World::getJointList(lua_State*) const in World.o
love::physics::box2d::World::getContactList(lua_State*) const in World.o
_luaopen_love in love-9091511F51D4A764.o
...
(它一直在继续;错误是相似的,所以我只是抽样)
【问题讨论】:
-
看起来有点奇怪;为什么你的 SDK 中有
Lua、Ogg等?我的 OSX 10.7 SDK 中没有它们。 -
因为它们是 love2d 的依赖项,我只是将它们导入到项目中
-
然后它(XCode?)将框架移到了 SDK 中?
-
它们应该安装在其他地方,这样它们就不会在更新过程中丢失。它们也看起来像错误的架构,所以是谁/无论把它们放在那里的东西都做错了。
-
是的,链接器似乎认为库不是针对 64 位模式编译的,但主程序是。