首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cmake.js和google测试测试node.js插件

使用cmake.js和google测试测试node.js插件
EN

Stack Overflow用户
提问于 2022-10-15 23:42:47
回答 1查看 35关注 0票数 0

我正在尝试用google测试一个节点-js插件(用cmake-js构建)。我是建立在Mac操作系统上。

addon目标构建并运行ok,但我在googletest目标上有问题。

我正在获取与未定义的V8方法相关的链接错误。

在CMakeLists.txt中,我打印(带有消息)变量CMAKE_JS_SRC和CMAKE_JS_LIB,它们都是空的。如果CMAKE_JS_LIB是空的,我看不出target_link_libraries()应该如何将节点/V8库添加到我的测试可执行文件.

如果我没有使用add_executable(),而是使用add_library(),那么google_test目标就会生成,但是当然我不能运行它,因为它不再是一个可执行文件。

你能帮上忙吗?

下面是我的CMakeLists.txt:

代码语言:javascript
复制
make_minimum_required(VERSION 3.14)

include_directories(my_project)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_FLAGS "-Wno-pointer-sign -fno-signed-char -std=c99 -fpermissive")
set(CMAKE_CXX_FLAGS "-Wno-pointer-sign -fno-signed-char -std=c99 -fpermissive")

project (addon)

include(FetchContent)

FetchContent_Declare(
  googletest
  GIT_REPOSITORY https://github.com/google/googletest.git
  GIT_TAG release-1.12.1
)
FetchContent_MakeAvailable(googletest)
include_directories(${CMAKE_JS_INC} "my_project/include/pkcs11/v2.40/")
file(GLOB SOURCE_FILES "my_project/*.c" "my_project/*.h" "my_project/*.cpp")
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB} )
## google_test
enable_testing()
file(GLOB TEST_FILES "test/*.cc" "test/utils/*.c")

add_executable(
  my_project_google_test
  ${TEST_FILES)
)
target_include_directories(my_project_google_test
PRIVATE
test/utils/*.h
)

target_link_libraries(
  my_project_google_test
  PRIVATE
  GTest::gtest_main
  ${CMAKE_JS_LIB}
)

include(GoogleTest)
gtest_discover_tests(my_project_google_test)
EN

回答 1

Stack Overflow用户

发布于 2022-10-16 16:23:31

CMAKE_JS_LIB在任何地方都是空的,除了在Windows上。

如果您还没有安装v8,可以从Homebrew安装它:brew install v8

将应用程序链接到v8

代码语言:javascript
复制
target_link_libraries(
  my_project_google_test
  PRIVATE
  v8
)

其他v8库可能是必需的,您没有发布所有的错误:v8_libbase v8_libplatform

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

https://stackoverflow.com/questions/74083736

复制
相关文章

相似问题

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