栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Windows下编译Infact库

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Windows下编译Infact库

Infact是Google研发的一套动态创建对象的C++库。其社区版本仅提供了基于Make的项目构建。而目前大多数开源系统均使用CMake作为跨平台的项目构建工具。

因此,本文提供了Infact CMake构建的方法。

一、下载源码
git clone https://github.com/google/infact.git
git checkout -b v1.0.8 v1.0.8
二、CMake配置

在src/infact目录下,新建CMakeLists.txt文件,添加以下内容,

SET(LIB_NAME Infact)

INCLUDE_DIRECTORIES(
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_BINARY_DIR}
)

LINK_DIRECTORIES(
	${CMAKE_LIBRARY_PATH}
	${PROJECT_BINARY_DIR}/lib
)

SET(Infact_LIBS
)

# Headers
SET(Infact_HDRS
	environment.h
	environment-impl.h
	error.h
	factory.h
	interpreter.h
	stream-init.h
	stream-tokenizer.h	
)

SET(Infact_SRCS
	environment.cc
	environment-impl.cc
	error.cc
	factory.cc
	interpreter.cc
	stream-tokenizer.cc	
)

IF (MSVC)
    # Turn off deprecation warnings
    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
    ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNINGS)
ENDIF(MSVC)

ADD_LIBRARY(${LIB_NAME} STATIC ${Infact_HDRS} ${Infact_SRCS})
TARGET_LINK_LIBRARIES(${LIB_NAME} ${Infact_LIBS})

SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES DEBUG_POSTFIX "d")

# Install
SET(INSTALL_INCDIR include)
SET(INSTALL_BINDIR bin)
IF(WIN32)
    SET(INSTALL_LIBDIR bin)
    SET(INSTALL_ARCHIVEDIR lib)
ELSE(WIN32)
    SET(INSTALL_LIBDIR lib${LIB_POSTFIX})
    SET(INSTALL_ARCHIVEDIR lib${LIB_POSTFIX})
ENDIF(WIN32)

INSTALL(
    TARGETS ${LIB_NAME}
    RUNTIME DESTINATION ${INSTALL_BINDIR}
    LIBRARY DESTINATION ${INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${INSTALL_ARCHIVEDIR}
)

INSTALL(
    FILES       ${HEADERS}
    DESTINATION ${INSTALL_INCDIR}/${LIB_NAME}
)

使用CMake进行项目构建,然后利用VS完成编译即可。

网络资料

Infacthttp://google.github.io/infact/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923268.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号