zoukankan      html  css  js  c++  java
  • pytorch源码解析-动态接口宏

    动态库接口定义:
    	gcc:
    		定义在动态库的显示属性:
    			作用对象: 	函数、变量、模板以及C++类
    			default:	表示在动态库内可见
    			hidden:		表示不可见
    		#define EXPORT __attribute__((__visibility__("default")))
    	微软:
    		#define C10_EXPORT __declspec(dllexport)	 制作dll时候用
    		#define C10_IMPORT __declspec(dllimport)	 调用dll时候用
    			放到同一个api 头文件中	
    			当编译的时候用export
    			调用的时候用 import 
    
    	通常用法:
    		class API Tensor {};
    
    	常用方法:
    	#ifdef _WIN32
    		#windows编译
    		#if defined(C10_BUILD_SHARED_LIBS)		#如果定义动态库
    			#define C10_EXPORT __declspec(dllexport)
    			#define C10_IMPORT __declspec(dllimport)
    		#else
    			#define C10_EXPORT
    			#define C10_IMPORT
    		#endif
    	#else // _WIN32
    		#if defined(__GNUC__)
    			#define C10_EXPORT __attribute__((__visibility__("default")))
    		#else // defined(__GNUC__)
    			#define C10_EXPORT
    			#endif // defined(__GNUC__)
    		#define C10_IMPORT C10_EXPORT
    	#endif // _WIN32
    
    
    	#ifdef BUILD_MAIN_LIB			#编译的时候 这个有定义   调用的时候没有定义
    		#define API C10_EXPORT
    	#else
    		#define API C10_IMPORT
    	#endif
    
    	真正使用的时候使用: API 便可
    
  • 相关阅读:
    Matrix-tree 定理的一些整理
    多项式
    多项式
    vijos 1641 Vs Snowy
    noip 提高组 2010
    军训有感
    我的将军啊
    洛谷 P3302 [SDOI2013]森林
    关于线段树
    关于KMP
  • 原文地址:https://www.cnblogs.com/longriyao/p/10802682.html
Copyright © 2011-2022 走看看