首先,我必须说,我是c++和所有正在进行的本地开发的编译器的绝对初学者。
实际上,我要做的是创建一个NodeJS绑定,包装一个现有的库。库本身有一个api.h,我可以在包装器中包含它,并使用它构建包装器方法。我的问题是,图书馆本身是相当大的:
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,如下所示:
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})要编译它,我将调用
cmake-js rebuild因为cmake-js还加载了一些NodeJS必需的东西,但是CMakeLists.txt文件使用了普通的cmake语法。
所以任何帮助都是很棒的,谢谢!
发布于 2015-08-13 15:11:59
实际上,您对nodejs使用编译器的方式是错误的。由于您正处于原型开发的早期阶段,因此不应该使用(思考、尝试、编译、观察、验证、反馈、修改、编译、.)的方法。
当您正在进行原型设计时,您应该创建一个空的DLL,它将在运行时加载/释放函数的内部代码。windows上的函数是LoadLibrary/FreeLibrary。
这样做,将允许您使用迭代方法来解决您的问题--也就是脚本能力。
完成原型之后,在该函数的基础上创建测试函数,该函数将保持预期的有效性域和结果,并将代码移动到DLLloader中。
避免使用Cmake是一种懒散的编译方式,应该有一个简单的命令行来编译dll。由于您要原型无论如何,不要使用cmake。打开记事本,使用命令行生成模块。
因此,不仅您将使用一个简单的记事本或notepad++,而且您将有最大的速度,几乎不需要调试器。
所以不需要再重新编译,只需要实时的原型能力,实时修复和测试.
https://stackoverflow.com/questions/31988354
复制相似问题