警告LNK4217:本地定义的符号(c)

时间:2019-03-04 23:19:43

标签: c++ linker compiler-warnings clang++ linker-warning

我需要使用以下编译选项,并且在没有警告的情况下进行编译:

 clang++ -g3 -O0 -std=c++17 -pedantic -Wall -Wold-style-cast -Wextra
 -Woverloaded-virtual -I./ -o main main.cpp

当我编译程序时,我得到这些警告,我不知道它们的意思,除了这里有人推荐其他不允许我使用的编译选项之外,我找不到任何可以帮助我的东西使用。

main-e3f4bd.o : warning LNK4217: locally defined symbol __std_terminate imported in function "int `public: __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)'::`1'::dtor$2" (?dtor$2@?0???0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ@4HA)
main-e3f4bd.o : warning LNK4217: locally defined symbol _CxxThrowException imported in function "public: void __cdecl RadList::loadPlaylist(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?loadPlaylist@RadList@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)

不确定代码在这里是否有用,但是如果相关,这是我文件的顶部: RadList.h:

#pragma once
#include <fstream>
#include <iostream>
#include <list>
#include <stdexcept>
#include "Song.h"
#ifndef RADLIST_H
#define RADLIST_H
class RadList {

Song.h:

#pragma once
#include <string>
#ifndef SONG_H
#define SONG_H
class Song {

main.cpp:

#include "RadList.h"
using std::string;
using std::cout;
using std::endl;

0 个答案:

没有答案