|
|
1
14
与其直接调用g++,我强烈建议您使用
CMake
(观看)
CMake Google Techtalk
如果你想了解更多),因为它会让你的生活变得更简单,并大大简化与各种库的定位和链接。也就是说,我相信您的调用的问题在于您没有指定库,这是您要处理的
如果你听从我的建议使用cmake,这样做会像: FIND_PACKAGE(GD2 REQUIRED)
INCLUDE_DIRECTORIES(${GD2_INCLUDE_DIRS})
LINK_DIRECTORIES(${GD2_LIBRARY_DIRS})
ADD_EXECUTABLE(heatmap main Heatmap_Map Heatmap_Point)
TARGET_LINK_LIBRARIES(heatmap ${GD2_LIBRARIES})
如果您有兴趣了解更多关于cmake的信息,您可能需要查看 C++ Application Project Template 和 C++ Library Project Template 使用cmake构建系统。cmake通过macports通过命令“sudo port install cmake”提供。 如果您对安装cmake不感兴趣,我还应该指出,您可能对一些环境变量感兴趣,这些变量可以使您的生活更轻松,即:
cpath环境变量与path环境变量非常相似(它是以冒号分隔的目录列表),但gcc和g++将自动使用该变量中的目录,就像在命令行上使用
你可以阅读更多关于 environment variables affecting gcc 在链接上。 |
|
|
2
3
答案相当复杂。
简短的答案是,当您编译自己的libs/tools时,将它们放在
更长的答案-阅读 Programming Library HOWTO 对于Linux,它解释了所涉及的每个工具的查找范围,从编译器/链接器到执行,并查看标准 directory structure of Linux system 这当然不具有约束力,但很高兴知道。 我假设您为每个项目都有一个简单的makefile设置,这样您就不必费心输入所有这些命令。如果您不这样做,我强烈建议您设置一个简单的makefile模板,您可以在项目中重用它。 编辑 : 在您编辑的答案中,您的路径可能不正确。
这个
|
|
|
3
1
头包含目录需要用-i选项指定(这之后只需要相对路径),链接器包含带有-l的目录(这里也有相对路径)。 对于库,您可以选择设置ld_library_路径,但-l方法更安全。 |
|
|
4
1
我认为您的问题可能是您的-i参数也需要传递到编译阶段。也许是这样?
不确定——我已经20年没有使用过makefiles了(但正如我在另一篇文章的评论中提到的,我发现jamplus的功能相当出色)。 无论如何-通常您的编译器和链接器标志将被放入变量中,然后在命令行中展开,但我不确定是否使用make语法。也许简单:
|
|
|
5
0
使用时需要使用-iquote包括“gd.h”,请参见 gcc directory options documentation . 另外,在链接阶段指定include目录是没有意义的。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |