Dirujuk oleh man.cpp, dan kemudian berjaya disusun, ralat telah dilaporkan semasa memautkanSintaks pertahanan ini hanya mempunyai satu fungsi init yang terdedah kepada bahagian luar Walaupun terdapat fungsi dengan nama yang sama di dalam fail, mengapa ia tidak didedahkan kepada dunia luar? Adakah kesilapan akan dilaporkan?
Mesej ralatVisual studio 2017 menyusun ralat C++: LNK2005 mass_diffusion.obj "void __cdecl compute(class std::vector<struct user ,class std: < ,kelas std::vector<item struct ,class std::allocator<item struct > > telah ditakrifkan dalam heat_conduction.obj. LINK2005
。我已经使用了#ifndef ... #define ... #endif
// common.h#ifndef _common_h#define _common_h ... struct user; struct item; struct hubungan; ...
#endif // !_COMMON_H...
//h_dif "common.h"extern void init_md(user_container, item_container);
void compute(user_container
_ulist, item_container
_ilist);
...
/.mass_defusion "#mass_diffusion"
void init_md(user_container
_ulist, item_container
_ilist){...};
void compute(user_container
_ulist, item_container
_ilist) {...};
...
/h
sertakan "common.h"extern void init_hc(user_container
_ulist, item_container
_ilist);void compute(user_container _ulist, item_container
_ilist);.../chea.pp_container
_con duction .h"
void init_hc(user_container _ulist, item_container _ilist){...};
void compute(user_container
_ulist, item_container _ilist) {...};/ ...
cpp #include "mass_diffusion.h"
#include "heat_conduction.h"
Ralat akan dilaporkan pada asalnya Setiap modul anda dipautkan ke fail yang sama Pemaut secara semula jadi akan keliru apabila ia melihat begitu banyak simbol dengan nama yang sama penyelesaiannya adalah untuk menjadikan setiap modul bebas