【发布时间】:2014-12-01 02:33:59
【问题描述】:
我想使用 CMake 创建一个简单的静态库Maths,然后链接到该库以创建一个简单的可执行文件Alpha。
这是我的目录结构:
/Maths
/build
/
/CMakeLists.txt
/maths.cpp
/maths.h
/Alpha
/build
/
/CMakeLists.txt
/main.cpp
以下是这些文件的内容:
* CMakeLists.txt(用于数学)*
cmake_minimum_required(VERSION 2.6)
project(Maths)
add_library(maths STATIC maths.cpp)
* maths.cpp *
int Double(int x)
{
int y = x * 2;
return y;
}
* maths.h *
int Double(int x);
* CMakeLists.txt(用于 Alpha)*
cmake_minimum_required(VERSION 2.8)
project(Alpha)
add_executable(alpha main.cpp ../Maths/maths.h)
target_link_libraries(maths ../Maths/build/libmaths.a)
* main.cpp *
#include <iostream>
#include "maths.h"
using namespace std;
int main()
{
int x = 5;
int y = Triple(x);
cout << "The answer = " << y << endl;
return 0;
}
所以,我进入目录/Maths/build,然后运行cmake ..。然后,我运行make。这将在目录/Maths/build 中创建库文件libmaths.a。
然后,我进入目录/Alpha/build,运行cmake ..。然后,我运行make。但是,这给了我错误消息:
/usr/bin/ld: cannot find -lmaths
为什么make找不到我刚刚创建的库文件?
我还尝试将libmaths.a 和maths.h 复制到目录/Alpha 中,并将Alpha 的CMakeLists.txt 更改为:
cmake_minimum_required(VERSION 2.8)
project(Alpha)
add_executable(alpha main.cpp maths.h)
target_link_libraries(maths libmaths.a)
但这给出了同样的错误。
【问题讨论】:
标签: cmake