xcode 上的 stl 链接错误



当使用 xcode 生成可执行文件时,我有 3 个链接错误。我使用了今天早上自己编译的 Irrlicht 1.9。

我想说的是,文件 CIrrDeviceOSX.mm 是一个objective-c文件,可以在这里找到: https://github.com/zaki/irrlicht/blob/master/source/Irrlicht/CIrrDeviceOSX.h https://github.com/zaki/irrlicht/blob/master/source/Irrlicht/CIrrDeviceOSX.mm

我认为错误在CIrrDeviceOSX.h中的"std::map KeyCodes;"中,并在 CIrrDeviceOSX.mm 中使用

我不知道问题是文件在 objective-c 中并且方法的签名不同,还是C++的版本(c ++ 11 或 ???)不同。

Ld bin/调试/矿测试正常x86_64 cd/Users/bluholm/Desktop/minetest-release/minetest 出口 MACOSX_DEPLOYMENT_TARGET=10.12/Applications/Xcode.app/Content/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot/Applications/Xcode.app/Content/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -L/Users/bluholm/Desktop/minetest-release/minetest/bin/Debug -F/Users/bluholm/Desktop/minetest-release/minetest/bin/Debug -filelist/Users/bluholm/Desktop/minetest-release/minetest-osx/src/minetest.build/Debug/minetest.build/Objects-normal/x86_64/地雷测试。LinkFileList -mmacosx-version-min=10.12 -Xlinker -object_path_lto -Xlinker/Users/bluholm/Desktop/minetest-release/minetest-osx/src/minetest.build/Debug/minetest.build/Objects-normal/x86_64/minetest_lto.o -Xlinker -no_deduplicate -lc++ -pagezero_size 10000 -image_base 100000000 -wl,-search_paths_first -wl,-headerpad_max_install_names/usr/lib/libz.dylib/usr/local/Cellar/irrlicht/1.9/lib/libIrrlicht.a -framework OpenGL -framework OpenAL/usr/local/lib/libvorbisfile.dylib/usr/local/lib/libvorbis.dylib/usr/local/lib/libogg.dylib/usr/lib/libsqlite3.dylib/usr/local/lib/libluajit-5.1.dylib/Users/bluholm/Desktop/minetest-release/minetest-osx/src/gmp/Debug/libgmp.a/Users/bluholm/Desktop/minetest-release/minetest-osx/src/jsoncpp/json/Debug/libjsoncpp.a -framework CoreFoundation -lpthread/usr/lib/libiconv.dylib -framework Carbon -framework Cocoa -framework IOKit/usr/lib/libiconv.dylib/usr/libcurl.dylib/usr/local/lib/libfreetype.dylib/Users/bluholm/Desktop/minetest-release/minetest-osx/src/cguittfont/Debug/libcguittfont.a/usr/lib/libcurses.dylib/usr/lib/libform.dylib/usr/local/lib/libhiredis.dylib -framework Carbon -framework Cocoa -framework IOKit/usr/lib/libcurl.dylib/usr/lib/libcurses.dylib/usr/lib/libform.dylib/usr/local/lib/libhiredis.dylib/usr/lib/libz.dylib/usr/local/Cellar/irrlicht/1.9/lib/libIrrlicht.a/usr/local/lib/libfreetype.dylib -Xlinker -dependency_info -Xlinker

/Users/bluholm/Desktop/minetest-release/minetest-osx/src/minetest.build/Debug/minetest.build/Objects-normal/x86_64/minetest_dependency_info.dat -o/Users/bluholm/Desktop/minetest-release/minetest/bin/Debug/minetest建筑x86_64的未定义符号:

"std::_Rb_tree_decrement(std::_Rb_tree_node_base*)",引用自: std::_Rb_tree_iterator>::operator--() in libIrrlicht.a(CIrrDeviceOSX.o)

"std::_Rb_tree_increment(std::_Rb_tree_node_base*)",引用自: std::_Rb_tree_iterator>::operator++() in libIrrlicht.a(CIrrDeviceOSX.o)

"std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)",引用自: std::_Rb_tree, std::_Select1st>, std::less, std::allocator>>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::p air const&) in libIrrlicht.a(CIrrDeviceOSX.o)

LD:找不到建筑x86_64符号

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

尝试在 XCode 中使用源代码创建一个新项目,并将C++标准库从默认的 libc++ 更改为 libstdc++

最新更新