Linker error calling C-Function from Objective-C++

前端 未结 2 1762
离开以前
离开以前 2020-12-29 04:47

I\'ve got a weird linker issue. I have code that looks like so:

    double given_amount = self.modelController.levelCompleteRewardAmount;
    swrve_currency_         


        
2条回答
  •  误落风尘
    2020-12-29 05:40

    If you are using c function in c++ file. you should use extern "c"{}. In .h file

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    swrve_currency_given(parameter1, parameter2, parameter3);// a c function
    
    
    #ifdef __cplusplus
    }
    #endif  
    

    extern "C" is meant to be recognized by a C++ compiler and to notify the compiler that the noted function is (or to be) compiled in C style.

    If you're linking to a library that was compiled as C code. use

    extern "C" {
      #include "c_only_header.h"
    }
    

    Take a look at When to use extern "C" in C++?

提交回复
热议问题