无法编译 C 库

安德烈·科罗尔

我正在尝试创建我的第一个 C 库,但我无法编译它。

我正在尝试在 Fedora: 上以这种方式编译它gcc -o clear.o clear.c,但出现此错误:

/usr/lib/gcc/x86_64-redhat-linux/6.3.1/../../../../lib64/crt1.o: In function `_start':

(.text+0x20): undefined reference to `main'

这是我想用作库的文件 ( "clear.c"):

#ifndef _CLEAR_H_
#define _CLEAR_H_
#ifdef _WIN32
    void clearScreen() {
        system("cls");
    }
    #endif
#elif __APPLE__
    #include "TargetConditionals.h"
    #if TARGET_OS_MAC
        void clearScreen() {
            system("clear");
        }
    #else
    #   error "This Apple platform is not supported"
    #endif
#elif __linux__
    void clearScreen() {
        system("clear");
    }
#elif __unix__
    void clearScreen() {
        system("clear");
    }
#elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
#include <sys/param.h>
#if defined(BSD)
    void clearScreen() {
        system("clear");
    }
#endif
#endif
金龙

首先,.o必须使用-c禁用链接器选项创建作为输出的对象 ( ) 文件因此,要创建目标文件,请运行gcc -c -o clear.o clear.c.

接下来,您可能想要创建一个实际的库,而不仅仅是一个目标文件。要创建共享(动态链接)库(最常见),您必须指定该-shared选项。所以,一旦你制作了目标文件,运行gcc -shared -o libclear.so clear.o(如果你在 Windows 上,你想要一个.dll,所以gcc -shared -o libclear.dll clear.o)。

如果您想要一个静态链接的库,请使用ar目标文件和.a扩展名 ( ar rcs libclear.a calc_mean.o)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用g ++用C ++代码编译C库

来自分类Dev

ksh:无法执行已编译的C库

来自分类Dev

ksh:无法执行已编译的c库

来自分类Dev

编译C ++库mingw

来自分类Dev

无法使用通过liblua.a(lua5.3)编译的C程序加载C动态库

来自分类Dev

编译C库时的警告

来自分类Dev

无法在Linux上使用Sleep()编译C ++代码-要包括哪个库?

来自分类Dev

C ++ Netbeans无法编译

来自分类Dev

无法编译C ++函数

来自分类Dev

无法编译C程序

来自分类Dev

C ++程序无法编译

来自分类Dev

用C ++文件编译C共享库

来自分类Dev

Google的Android存储库代码无法编译

来自分类Dev

无法为IOS编译Crypto ++库

来自分类Dev

共享库无法编译,*。a文件丢失

来自分类Dev

Boost库找到目标但无法编译

来自分类Dev

动态库中的OpenMP卸载无法编译

来自分类Dev

“ Yup”验证库无法在TypeScript中编译

来自分类Dev

Google的Android存储库代码无法编译

来自分类Dev

无法编译我自己的 kotlin 库

来自分类Dev

如何判断库是使用C ++ 11编译的

来自分类Dev

编译Boost C ++库1.54时出错

来自分类Dev

跨不同编译器的C ++库

来自分类Dev

在virtualenv中使用C ++编译的库

来自分类Dev

使用Visual Studio 2010编译C库

来自分类Dev

编译外部C ++库以用于iOS项目

来自分类Dev

使用Chilkat库编译C ++程序

来自分类Dev

跨不同编译器的C ++库

来自分类Dev

编译需要绑定的C#库项目