首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预编译C++供应商库(#包括api.h)

预编译C++供应商库(#包括api.h)
EN

Stack Overflow用户
提问于 2015-08-13 12:32:13
回答 1查看 390关注 0票数 1

首先,我必须说,我是c++和所有正在进行的本地开发的编译器的绝对初学者。

实际上,我要做的是创建一个NodeJS绑定,包装一个现有的库。库本身有一个api.h,我可以在包装器中包含它,并使用它构建包装器方法。我的问题是,图书馆本身是相当大的:

代码语言:javascript
复制
  src/  
    vendor/
      libA/..
      libB/..
      libC/..
      api.h 
      api.cpp 
    addon.cpp (where I am including the "vendor/api.h")

所以每次我编译我的addon.cpp时,所有的库都必须被一次又一次地重新编译,这很糟糕。那么,编译一次api并在我的addon.cpp中使用它的最佳方法是什么(我没有使用我的插件中的任何lib,只使用api.h!)

顺便说一下,我正在编写一个Ubuntu14.04,我正在使用Cmake来执行编译:

为了与所有库一起编译我的注释,我定义了所有的SOURCE_FILES,如下所示:

代码语言:javascript
复制
file(GLOB SOURCE_FILES
 "src/addon.cpp"
 "src/vendor/*.cpp" "src/vendor/*.h"
 "src/vendor/libA/*.c" "src/vendor/libA/*.h"
 "src/vendor/libB/*.cpp" "src/vendor/libB/*.h"
 "src/vendor/libC/*.c" "src/vendor/libC/*.h"
)

...
add_library(addon SHARED ${SOURCE_FILES})

要编译它,我将调用

代码语言:javascript
复制
cmake-js rebuild

因为cmake-js还加载了一些NodeJS必需的东西,但是CMakeLists.txt文件使用了普通的cmake语法。

所以任何帮助都是很棒的,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-08-13 15:11:59

实际上,您对nodejs使用编译器的方式是错误的。由于您正处于原型开发的早期阶段,因此不应该使用(思考、尝试、编译、观察、验证、反馈、修改、编译、.)的方法。

当您正在进行原型设计时,您应该创建一个空的DLL,它将在运行时加载/释放函数的内部代码。windows上的函数是LoadLibrary/FreeLibrary。

这样做,将允许您使用迭代方法来解决您的问题--也就是脚本能力。

完成原型之后,在该函数的基础上创建测试函数,该函数将保持预期的有效性域和结果,并将代码移动到DLLloader中。

避免使用Cmake是一种懒散的编译方式,应该有一个简单的命令行来编译dll。由于您要原型无论如何,不要使用cmake。打开记事本,使用命令行生成模块。

因此,不仅您将使用一个简单的记事本或notepad++,而且您将有最大的速度,几乎不需要调试器。

所以不需要再重新编译,只需要实时的原型能力,实时修复和测试.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31988354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档