I have the following code:
#include <iostream> #include <boost\filesystem.hpp> int main(){ const char* file_path = "my_path"; std::cout << boost::filesystem::file_size(file_path) << std::endl; }
and when building I get the following errors:
1>Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" ( ?system_category@system @ boost@ @ YAAEBVerror_category@12 @XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'native_ecat''(void)" ( ??__Enative_ecat@system @ boost@ @YAXXZ) 1>Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" ( ?generic_category@system @ boost@ @ YAAEBVerror_category@12 @XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" ( ??__Eerrno_ecat@system @ boost@ @YAXXZ) 1>Main.obj : error LNK2019: unresolved external symbol "void __cdecl boost::filesystem::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &)" ( ?convert@path _traits@filesystem @ boost@ @ YAXPEBD0AEAV?$basic_string@ _WU?$char_traits@ _W@std @@ V?$allocator@ _W@2 @@ std@ @ AEBV?$codecvt@ _WDH@5 @@Z) referenced in function "void __cdecl boost::filesystem::path_traits::dispatch<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &)" ( ??$dispatch@V ?$basic_string@ _WU?$char_traits@ _W@std @@ V?$allocator@ _W@2 @@ std@ @@ path_traits@filesystem @ boost@ @ YAXAEBV?$basic_string@DU ?$char_traits@D @ std@ @ V?$allocator@D @ 2@ @ std@ @ AEAV?$basic_string@ _WU?$char_traits@ _W@std @@ V?$allocator@ _W@2 @@ 4@AEBV ?$codecvt@ _WDH@4 @@Z) 1>Main.obj : error LNK2019: unresolved external symbol "public: static class std::codecvt<wchar_t,char,int> const & __cdecl boost::filesystem::path::codecvt(void)" ( ?codecvt@path @ filesystem@boost @@ SAAEBV?$codecvt@ _WDH@std @@XZ) referenced in function "public: __cdecl boost::filesystem::path::path<char const [1]>(char const (&)[1],void *)" ( ??$?0$$BY00$$CBD@path @ filesystem@boost @@ QEAA@AEAY00 $$CBDPEAX@Z ) 1>Main.obj : error LNK2019: unresolved external symbol "unsigned __int64 __cdecl boost::filesystem::detail::file_size(class boost::filesystem::path const &,class boost::system::error_code *)" ( ?file_size@detail @ filesystem@boost @@ YA_KAEBVpath@23 @ PEAVerror_code@system @ 3@ @Z) referenced in function "unsigned __int64 __cdecl boost::filesystem::file_size(class boost::filesystem::path const &)" ( ?file_size@filesystem @ boost@ @ YA_KAEBVpath@12 @@Z)
I use Visual Studio and I set an additional library path for my linker to enable "C:\Program Files\Boost\boost_1_54_0\stage\lib;" . I also set the inclusion path to see C:\Program Files\Boost\boost_1_54_0;
Can anybody help? My code builds fine when I use boost :: algorithm, boost :: string and boost :: interprocess .
EDIT: this is what my link, if it is executed on the command line, looks like this:
/ OUT: "my_file_path" / MANIFEST / NXCOMPAT / PDB: "my_file_path" / DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32 .lib "" ole32.lib "" oleaut32.lib "" uuid.lib "" odbc32.lib "" odbccp32.lib "/ DEBUG / MACHINE: X64 / INCREMENTAL / PGD:" my_file_path "/ MANIFESTUAC:" level = 'asInvoker 'uiAccess =' ββfalse '"/ ManifestFile:" my_file_path "/ ERRORREPORT: PROMPT / NOLOGO / LIBPATH:" C: \ Program Files \ Boost \ boost_1_54_0 \ stage \ lib "/ TLBID: 1
c ++ boost visual-studio linker boost-filesystem
user997112
source share