これらの 2 つの名前空間があり、それぞれに同じ名前の関数が含まれています。
namespace group1 {
void add(int arg) {
}
}
namespace group2 {
void add(bool arg) {
}
}
そして、宣言を含むヘッダーでこれを指定します
#ifdef __cplusplus
extern "C" {
#endif
// My namespaces and functions prototypes here
#ifdef __cplusplus
}
#endif
GCCを使用して、それらをDLLにエクスポートしようとしています。それらは同じ名前であるため、それらの間の競合に関する警告が表示され、リンク時にエラーが発生します。名前も引数に基づいてオブジェクトファイルでマングルされていると思いました。リンカーが名前空間も気にするかどうかはわかりません。どうすればこれを機能させることができますか?ありがとう。