gpt4 book ai didi

c++ - Luabind undefined symbol /Luabind::scope::scope

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:53 25 4
gpt4 key购买 nike

我刚刚开始使用 Luabind,并尝试运行在 http://www.rasterbar.com/products/luabind/docs.html#calling-lua-functions 指定的 Hello World 测试.但是,这会在尝试编译时提供 undefined symbol 错误。

Undefined symbols for architecture x86_64:
"luabind::scope::scope(std::__1::auto_ptr<luabind::detail::registration>)", referenced from:
luabind::scope luabind::def<void (*)(), luabind::detail::null_type>(char const*, void (*)(), luabind::detail::null_type const&) in TestClass.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

luabind::open 和 luabind::call_function 等其他函数可以正常工作。

我在 osx 上通过自制软件安装了 luabind 和 lua 5.1。

最佳答案

在我看来,您正在针对 libc++ 编译程序并尝试链接到针对 stdlibc++ 库编译的 luabind 库。

线索是 std::__1::auto_ptr。 libc++ 使用这个 __1 内联命名空间来区分它的 ABI 和 stdlibc++

因此如果

luabind::scope::scope(std::__1::auto_ptr<luabind::detail::registration>)

找不到它可能是因为 libluabind 没有它。转储它的导出符号你可能会发现它有

luabind::scope::scope(std::auto_ptr<luabind::detail::registration>)

相反。

如果我是对的,只需重新编译以 libc++ 为目标的 libluabind,您应该会发现它适用于您的测试程序。

关于c++ - Luabind undefined symbol /Luabind::scope::scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com