需要一些帮助创建一个cmake文件来让我的项目工作…
Need some help creating a cmake file to get my project to work...convert from cmake
我知道没有直接的方法将make文件转换为cmake,但需要一些指导。我有一个用于嵌入式机器的make文件,并希望使用cmake向前移动。
我正在linux开发机上交叉编译一个运行linux内核的嵌入式手臂。
当前,所有文件都在同一个文件夹中。我正在努力将他们转移到这个结构中:构建文档包括srcCMakeLists.txt以及CMakeLists.txt
我想把头文件放在/includes文件夹中,c/cpp文件放在src文件夹中。
OUT = enterprise.exe
CC = g++
CCFLAGS = -lrt -Wall -pthread
HEADERS = logobj.h message.h channel.h utilities.h parameter.h mycan.h vthread.h logger.h protocol_quest.h protocol_can.h protocol_io.h protocol_navitrol.h qt_nav.h qt_battery.h qt_iodealer.h enterprise.h
OBJECTS = logobj.o message.o channel.o utilities.o parameter.o mycan.o vthread.o logger.o protocol_quest.o protocol_can.o protocol_io.o protocol_navitrol.o qt_nav.o qt_battery.o qt_iodealer.o enterprise.o
GPIOHEADERS = evgpio.h
GPIOOBJECTS = evgpio.o
%.o: %.c $(HEADERS)
$(CC) $(CCFLAGS) -c -o $@ $<
%.o: %.c $(GPIOHEADERS)
$(CC) $(CCFLAGS) -c -o $@ $< -mcpu=arm9
$(OUT): $(OBJECTS) $(GPIOOBJECTS)
$(CC) $(CCFLAGS) -o $@ $^ $(LIB)
clean:
-rm -f $(OBJECTS) $(GPIOOBJECTS)
-rm -f $(OUT)
我想它会是这样的:
顶部文件夹CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(enterprise)
set(CMAKE_CXX_COMPILER /opt/toolchains/arm-2008q3/bin/arm-none-linux-gnueabi-g++)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(COMPILE_FLAGS "-lrt -Wall -pthread")
add_subdirectory(src)
/src文件夹CMakeLists.txt
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) //haven't moved the headers yet
set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR} filename1.cpp filename2.cpp etc.cpp)
set(vendorLib filenameVendor1.o filenameVendor2.o etcVendor.o)
add_executable(enterprise ${SOURCES})
target_link_libraries(enterprise vendorLib)
我的一部分认为应该有一些联系,但不确定在哪里。此时,我可以通过cmake过程,但在make上失败。未定义的引用等…
想法吗?
*****EDIT**更新了src/CMakeLists.txt以包含来自测试的注释和更新
您需要将所有源文件添加到可执行文件:
add_executable(enterprise ${SOURCES})
或者至少添加构建可执行文件所需的所有源文件。
如果你有库,那么你也需要添加它们:
target_link_libraries(enterprise rt)
更多信息请阅读文档
相关文章:
- 我的文件无法正常工作,无法从C++文件中读取上下文
- 将内容从第一个文件("constituencies")移动到第二个文件("temp")并在之后重命名时,我的文件被删除
- 为什么URLDownloadToFile()没有下载我的文件
- 使用Cygwin C++时出现未定义的引用错误,为什么我的文件没有链接?
- C++ while 循环没有从我的文件中读取 -1
- 这是我的 .h 文件的一些错误,当我在其中包含我的类模板时,它显示 [错误] 未终止 #ifndef
- 为什么我的".a"文件中的所有符号值都是 0
- 不会在登录名中读取C++我的文件
- 使用 c++ 将我的文件拆分为 128 个字节
- 我的C++文件期望用'while'代替 if。最后,它预计会出现'('
- 为什么当我写入文件时,结构在我的文件中消失了
- 视觉C++为什么我的文件在重新启动程序时被截断?
- 我的文件可以编译,但当我尝试运行它时"no such file or directory"
- 在Ostream上使用std :: endl使我的文件二进制
- 无法使用名称空间,也不能在我的.h文件中包含标准的C 库
- 为什么我的文件/目录操作在Windows上工作正常,但在Linux上不能
- 我的C文件是从Pro*C生成的吗
- C++11 fgetc 在"r+b"模式下使用时向我的文件输出 0
- Qt Android:如果我写信给"./myfile.txt",我的文件在哪里?
- 我的C++文件中是否有可能的内存泄漏