加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么我在这个简单的代码中得到“ld:warning:在_main中

发布时间:2020-12-14 19:43:44 所属栏目:百科 来源:网络整理
导读:参见英文答案 xcode with boost : linker(Id) Warning about visibility settings????????????????????????????????????6个 这是我的Clang编译器中非常奇怪的行为.我使用Xcode(OS X),所有都是最新的.为什么我会在这个简单的代码中收到此警告?如果我删除这两
参见英文答案 > xcode with boost : linker(Id) Warning about visibility settings????????????????????????????????????6个
这是我的Clang编译器中非常奇怪的行为.我使用Xcode(OS X),所有都是最新的.为什么我会在这个简单的代码中收到此警告?如果我删除这两行警告隐藏.

ld: warning: direct access in _main to global weak symbol
std::__1::char_traits::eq(char,char) means the weak symbol
cannot be overridden at runtime. This was likely caused by different
translation units being compiled with different visibility settings.

int main( int argc,char* argv[] ) {
    std::string file = "test";
    size_t pos = file.find( "a" );
    return 0;
}

解决方法

有关详情,请参见 Controlling Symbol Visibility @ developer.apple.com.

它看起来像你的libs(例如C标准库)和你的代码已经用不同的可见性设置编译,至少,这是链接器错误消息所说的.

要修复警告,您应该在编译代码时使用相同的可见性设置,例如-fvisibility = hidden.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读