gpt4 book ai didi

c++ - LLVM 项目的示例 CMakeLists.txt 文件

转载 作者:IT老高 更新时间:2023-10-28 21:57:39 25 4
gpt4 key购买 nike

我很难让 LLVM 参与一个新项目。我尝试了 http://old.nabble.com/CMake-sample-project--td28871124.html 中的多个 CMakeLists.txt 示例并且花了很多时间。

我可以完美地构建 LLVM 和示例,但我想要一个不在 LLVM 文件夹内的项目。我在 Windows 7 上使用 Visual Studio 2010。现在我的设置是这样的:

root
- CMakeLists.txt (1)
main
- CMakeLists.txt (2)
- main.cpp (an exact copy of the Fibonacci example)

(1)

cmake_minimum_required(VERSION 2.6)
project (TestLLVM)

set(LLVM_SRC_DIR "MY FOLDER/llvm-2.9" CACHE PATH "Directory LLVM source (includes) are in")
set(LLVM_BIN_DIR "MY FOLDER/llvm-2.9-install" CACHE PATH "Directory LLVM binaries (libraries) are in")

set (CMAKE_BUILD_TYPE Debug)

add_definitions (-D_DEBUG)

link_directories(${LLVM_BIN_DIR}/lib/Release)
include_directories(${LLVM_SRC_DIR}/include ${LLVM_BIN_DIR}/include)

add_subdirectory (main)

(2)

if(NOT WIN32 OR MSYS OR CYGWIN)
set (PLATFORM_LIBS dl boost_system)
endif()

add_executable (main main.cpp)
target_link_libraries (main

${PLATFORM_LIBS}

LLVMX86Disassembler
LLVMX86AsmParser
LLVMX86AsmPrinter
LLVMX86CodeGen

LLVMSelectionDAG

LLVMAsmPrinter
LLVMMCParser
LLVMX86Info

LLVMJIT
LLVMExecutionEngine

LLVMCodeGen
LLVMScalarOpts
LLVMTransformUtils

LLVMipa
LLVMAnalysis
LLVMTarget
LLVMMC

LLVMCore
LLVMSupport
)

CMake 工作正常并创建解决方案文件等,但是当我编译项目时,我从 LLVMX86CodeGen.lib 中得到很多 Unresolved external 和不匹配。我也明白了:

defaultlib 'MSVCRT' 与其他库的使用冲突;使用/NODEFAULTLIB:library

问题可能与以下有关:- 我从列表中删除了 LLVMSystem,因为它没有找到。- 如示例所示,我编译的库位于/lib/Release/而不是/lib/中。

对上述问题的任何帮助将是一个很大的帮助! :)

最佳答案

以下是您需要的所有信息:http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project .

您正在观察此类问题,因为某些链接器无法以正确的顺序自动链接静态库。为此,您需要利用 llvm_map_components_to_libraries 函数。

关于c++ - LLVM 项目的示例 CMakeLists.txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com