OSX에서 makefile을 사용하는 커다란 C++ 프로젝트가 있습니다. 여기서 단순히 호출 할 수있는 내 보낸 함수를 추가하려고합니다. 프로젝트는 실행 가능해야하며 라이브러리가 아니어야합니다. 이미 많은 기능을 수출하고 있지만 내보내기 기능을 사용할 수 없기 때문에 바이너리에서 nm을 실행할 때 보이지 않습니다. OSX C++ 내보내기 기능
는 단순히 나는 또한EXPORT int callme(int test) {return 0;}
같은 헤더를 선언하지만 난 이미 기호의 오류의 무리를 얻을 시도 .H
#define EXPORT __attribute__((visibility("default")))
EXPORT int callme(int test);
헤더에이를 추가하려고 다른 오브젝트 파일에 존재합니다.
편집 : 그것은 간단한 C 함수이고 나는 또한 C에 관해서 ++ 및 어떤 통찰력이나 도움이 많이 감사 감사하겠습니다 때 내가 초보자의 비트를 해요
#if !defined(__cplusplus)
#define MONExternC extern
#else
#define MONExternC extern "C"
#endif
MONExternC int callme (int test);
을 시도했다.
내보내는 C 함수 또는 C++ 함수입니까? 당신은 그것을''extern "C"{...}'에 포장해야 할 수도 있습니다. (http://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect-of- extern-c) 블록. 올바르게 익스포트 될 수 있지만 C++ 함수 이름이 있습니다. – tadman
이것은 간단한 C 함수로, 내가 시도한 내용의 포스트에 컨텍스트를 추가했습니다. –