# leetcode **Repository Path**: cy_bupt/leetcode ## Basic Information - **Project Name**: leetcode - **Description**: leetcode上的题和一些数据结构 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-02 - **Last Updated**: 2021-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 c中包含了部分common目录,需要自己手动编译 c++中提供了cmake编译文件,也只是基础的针对单文件编译的,使用config.sh可以将目录下所有的单文件都添加到cmakelists.txt中 # 环境 ```shell sudo apt update sudo apt install -y make cmake build-essential gdb ``` # c编译测试 对于编写了main函数的,可以直接编译,注意有的使用的了其他文件的函数 没有编写main函数的只能编译为静态库或者动态库,在其他文件中调用 基本的编译格式为: ```shell gcc -o file_name file_name.c other_name.c -g ``` ## 静态库制作: ```shell gcc -o file_name -c file_name.c other_name.c ar -rcs -o libfile_name.a file_name ``` 静态库使用: ```shell gcc -o main -main.c -static -lfile_name ``` 运行: ./main ## 动态库制作: ```shell gcc -o file_name -c -fPIC file_name.c other_name.c gcc -shared -o libfile_name.so file_name ``` 动态库使用: ```shell gcc -o main main.c -L. -lfil_name ``` ## 注意事项 1. 有的测试是直接将测试用例写在了main函数中,有的需要手动输入数据,例如./main argv1 argv2 2. 在使用动态库时注意动态库的位置,否则可能会出现链接错误 ## 文件搜索路径 头文件: 1. -I 2. C_INCLUDE_PATH 3. /usr/include /usr/local/include ... 静态库库文件: 1. -L 2. LIBRARY_PATH 3. /lib /usr/lib /usr/local/lib 动态库文件 1. -L 2. LD_LIBRARY_PATH;//load时的库路径 3. /lib /usr/lib # c++编译 ```shell sh config_all.sh mkdir build cd build cmake ../ ``` # vscode配置 ## gcc的include路径 gcc -v -x c -E /dev/null