我正在尝试编写一个使用C API的程序。此API仅提供api.h
标头文件,.dll
和.lib
。
它正在使用__stdcall
个出口。
我尝试添加api.h
并添加.lib
和.dll
文件,但我仍然对库路径有以下错误,但我仍然有以下错误:
**** Build of configuration Debug for project TestLibsp ****
**** Internal Builder is used for build ****
gcc -LC:\Users\nbarraille\workspace\TestLibsp\lib -oTestLibsp.exe src\main.o
src\main.o: In function `main':
C:\Users\nbarraille\workspace\TestLibsp\Debug/../src/main.c:83: undefined reference to `sp_session_create@8'
C:\Users\nbarraille\workspace\TestLibsp\Debug/../src/main.c:86: undefined reference to `sp_error_message@4'
C:\Users\nbarraille\workspace\TestLibsp\Debug/../src/main.c:92: undefined reference to `sp_session_login@12'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 721 ms
这是我的.c文件:
#include "api.h"
int main(int argc, char **argv){
sp_session *sp;
sp_error err;
sp_session_config spconfig;
/* Create session */
sp_error err = sp_session_create(&spconfig, &sp);
}
以下是我试图在api.h
#ifndef SP_LIBEXPORT
#ifdef _WIN32
#define SP_LIBEXPORT(x) x __stdcall
#else
#define SP_LIBEXPORT(x) x
#endif
#endif
SP_LIBEXPORT(sp_error) sp_session_create(const sp_session_config *config, sp_session **sess);
有什么想法吗?
谢谢!
答案 0 :(得分:1)
您需要使用gcc -l<libname> -L<libpath>
链接库。我猜你正在使用eclipse,所以你可以在Project中轻松添加lib - &gt;属性 - &gt; C / C ++ Build - &gt;设置 - &gt; GCC C ++链接器 - &gt;文库