gnu compiler from the command line
gnu compiler from the command line
我正在学习c++,并从命令行进行编译。在尝试添加第三方库时,我遇到了一个问题。我搞不清楚链接器系统。有人知道一个好的教程或类似的东西吗?
例如,我想玩SDL2库,但不喜欢使用这样的命令。
c++ -I/Library/Frameworks/SDL2.framework/Headers -L/Library/Frameworks/SDL2.framework/ -lSDL2 helloworld.cpp
并且我得到错误ld:找不到-lSDL2 的库
您需要将链接标志放在最后一行:
g++ -I/Library/Frameworks/SDL2.framework/Headers helloworld.cpp -L/Library/Frameworks/SDL2.framework/ -lSDL2
#include<SDL2/SDL.h>
and the correct compile command is...
c++ -o helloworld helloWorld.cpp -framework SDL2
我也可以用g++。在我的系统上,c++和g++都是指向同一个gnu编译器的符号链接,该编译器恰好是我在系统上安装的最新版本。
选项-L是一个unix链接器选项,不适用于MAC。GCC的开发人员非常友好,以-framework的形式包含了MAC特定的链接器选项。这些服务遵循了mac的传统,即他们喜欢如何以及在哪里存储图书馆。您可以通过用逗号分隔多个框架来将它们连接在一起。例如,只要我的源代码有,我也可以做框架SDL2,SDL2_mixer
#include<SDL2_mixer/SDL_mixer.h>
编译时,库的默认搜索位置为/Library/Frameworks。include语句是跨平台兼容的,mac-gnu链接器知道如果我说
#include<SDL2/SDL.h>
该标头将在/Library/Frameworks/SDL2.framework/Headers 中找到
IPATH选项在mac上仍然有效,可以像在unix中一样用于传递头文件和源文件的备用搜索位置。
相关文章:
- netcat command in c++
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- Poloniex API "Invalid command" c++ libcurl
- 以某种方式告诉编译器"Do not process line of code"
- 如何使用键盘的特殊键,如Command、Shift、Alt、Tab或C/C++程序中的功能键
- 从系统("command") (C++) 设置变量
- Google Assistant SDK (C++) - Broadcast Command
- 注册 Clang 检查器时出错:"out-of-line-definition of register"
- :<command-line>0:3:警告:ISO C++11 要求宏名称后有空格
- Command Line Arguments wxCmdLineArgsArray in wxWidgets
- 如何修复"/bin/sh: bc: command not found"
- C++链接器错误 ( "Linker command failed with exit code 1" )
- Ssh command from Qt
- qt graphicsscene line subclass
- 如何在Xcode中修复'sh: brew: command not found'?
- 字符串问题中的系统( "command" ) 字符串
- Xcode 8.3 command line C++
- 交叉编译时"DSO missing from command line" 莫斯基托示例
- 错误: :<command-line>0:9
- gnu compiler from the command line