首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当与使用使用Python脚本构建的另一个库的库链接时,Cmake未定义引用

当与使用使用Python脚本构建的另一个库的库链接时,Cmake未定义引用
EN

Stack Overflow用户
提问于 2021-10-02 17:20:25
回答 1查看 175关注 0票数 0

我是cmake的新手,我正在尝试移植我以前用手写的makefile构建的一个项目。可执行文件使用我构建的lib "core“,它需要lib "西德”(由英特尔编写)。Xed使用要构建的python脚本,因此在CMakeLists中构建我的库核心时,我使用了一个"add_custom_command“来按照intel提供的使用说明构建使用说明

代码语言:javascript
复制
project(libcore VERSION 0.1)
find_package(Python3 COMPONENTS Interpreter REQUIRED)

add_library(core STATIC src/arch.cpp src/cpu.cpp src/floppy.cpp src/pic.cpp src/pit.cpp src/ports.cpp src/ppi.cpp src/ram.cpp third-party/lib/libxed.a)

add_custom_command(OUTPUT third-party/lib/libxed.a
                    COMMAND ${CMAKE_COMMAND} -E make_directory third-party/xed/build
                    COMMAND ${PYTHON3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/third-party/xed/xed/mfile.py --jobs=4 --build-dir=third-party/xed/build/obj --src-dir=${CMAKE_CURRENT_SOURCE_DIR}/third-party/xed/xed --static --opt=3 --prefix=third-party --install-dir=third-party/xed/kits/xed-install-date-os-cpu --no-amd --no-via --no-encoder --compress-operands install
                    )

target_include_directories(core PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/third-party/include PUBLIC ${PROJECT_SOURCE_DIR}/include)

target_precompile_headers(core PUBLIC include/pch.hpp)

问题是,当将我的最终产品与我的lib "libcore.a“链接时,我有很多未定义的函数引用,我不知道如何修复它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-18 10:47:24

这里同时存在两个问题:当试图移植到cmake时,我尝试模仿我的makefile的工作方式。当我考虑如何将libxed嵌入到我的libcore中时,我以为我是在我的makefile中这样做,但我没有这样做,我将最终的可执行文件与我的libcore和libxed连接起来。因此,两个问题是:

  1. 如何将.a文件嵌入另一个
  2. 如何使用makefile

第一个问题是这里回答的。

我所做的是:

  1. 创建第一个库(在我的例子中是libxed.a)
  2. 使用-x选项ar提取第一个库的.o文件(在我的例子中是ar -x <path to libxed.a>/libxed.a )
  3. 使用所有.o文件创建新库:ar -x *.o

我必须执行所有这些步骤,因为编译xed的过程有点奇怪,而且很难预先知道要包含哪个源文件

我仍然不知道如何在CMake中以可移植的方式模拟这种行为,但如果有必要的话,这将是StackOverflow上的另一篇文章,所以我将把它标记为一个可接受的答案。

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

https://stackoverflow.com/questions/69418652

复制
相关文章

相似问题

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