Libhello

cmake

风格不统一 提交于 2020-11-14 05:04:14
1.cmake_minimum_required(VERSION 3.7.1) cmake最低版本 2.project Sets the name of the project, and stores it in the variable PROJECT_NAME . When called from the top-level CMakeLists.txt also stores the project name in the variable CMAKE_PROJECT_NAME . 3.set(SOURCE_FILES main.c) 用 SOURCE_FILES 代替文件main.c 4.message(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR}) ${PROJECT_BINARY_DIR} :CMakeLists.txt所在目录,在终端会打印如下内容: This is BINARY dir /home/zzz/WorkSpace/Program/learning-cmake/hello-world 5.add_executable(hello-world ${SOURCE_FILES}) hello-world :最后生成可执行文件名称 6.add_subdirectory(src) 添加一个子目录去编译 7

golang生成c-shared so供c语言或者golang调用到例子

被刻印的时光 ゝ 提交于 2020-08-16 03:45:26
1.golang生成c-shared类型到so 建立文件夹hello,创建main.go文件,内容如下: package main import "C" func main() {} //export Hello func Hello() string { return "Hello" } //export Test func Test() { println("export Test") } 生成so脚本文件,命令行: export GOARCH="386" export GOBIN="/home/ender/下载/go/bin" export GOEXE="" export GOHOSTARCH="386" export GOHOSTOS="linux" export GOOS="linux" export GOPATH="/home/ender/go:/home/ender/下载/goproject" export GORACE="" export GOROOT="/home/ender/下载/go" export GOTOOLDIR="/home/ender/下载/go/pkg/tool/linux_386" export GCCGO="gccgo" export GO386="" export CC="gcc" export GOGCCFLAGS="-fPIC -m32

【转】静态链接库、动态链接库和动态加载库

拟墨画扇 提交于 2020-05-03 21:03:46
转自:https://www.cnblogs.com/nufangrensheng/p/3578784.html 静态链接库 前言 静态库是obj文件的一个集合 (目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标是库),通常静态库以".a"为后缀,名字格式一般为 lib xxx .a 。 静态库由程序ar生成 。 实例程序如下: Main.c #include <stdio.h> extern void print_hello(); int main( void ) { print_hello(); } Print_hello.c #include <stdio.h> void print_hello() { printf( " hello\n " ); } 生成静态链接库 创建静态库的步骤: 生成目标文件 。 (使用命令gcc –c file.c) 使用工具ar对目标文件进行归档 。 (使用的命令如下) 生成静态链接库,或者将一个obj文件加入到已经存在的静态库的命令格式为: ar –rcs 库文件obj_1 obj_2 … 使用上面的实例程序print_hello.c创建静态链接库: 使用静态链接库 使用方式一: 使用方式二: 注意,在方法二中"-L./"不可少

《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件

会有一股神秘感。 提交于 2019-12-01 23:47:32
《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 五、静态库与动态库构建 读者云,太能罗唆了,一个Hello World就折腾了两个大节。OK,从本节开始,我们不再折腾Hello World了,我们来折腾Hello World的共享库。 本节的任务: 1、建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc向终端输出Hello World字符串。 2、安装头文件与共享库。 (一)、准备工作: 在/backup/cmake目录建立t3目录,用于存放本节涉及到的工程 (二)、建立共享库 cd /backup/cmake/t3 mkdir lib 在t3目录下建立CMakeLists.txt,内容如下: PROJECT(HELLOLIB) ADD_SUBDIRECTORY(lib) 在lib目录下建立两个源文件hello.c与hello.h hello.c内容如下: #include "hello.h" void HelloFunc() { printf("Hello World\n"); } hello.h内容如下: #ifndef HELLO_H