我一直在使用VS2008 / 2010一段时间,我将学习使用Eclipse Helions进行C / C ++开发(主要是C)。
我对图书馆感到困惑,但包括。
1)你如何正确包含winsock2.h例如? 我试过这个:
#ifndef CONFIG_H_ #define CONFIG_H_ /* Windows-Build */ #if defined(WIN32) || defined(_WIN32) #include <winsock2.h> #endif SOCKET sock; #endif /* CONFIG_H_ */
但编译器不认识SOCKET。 你需要手动添加winsock2的完整path吗?
2)那么ws2_32.lib呢? 你在哪里包括在Eclipse中? 你还需要添加一个path吗?
3)使用VS主要是我新makefile。 你如何包含自定义的makefiles? 有没有一个很好的指导,以makefiles开始?
4)VS中是否有智能感?
这就是我现在可以弄明白的。 谢谢!
编辑:回应第一个答案:
Building target: Filesharing_core.dll Invoking: Cygwin C Linker gcc -L"C:\cygwin\lib\w32api" -shared -o"Filesharing_core.dll" ./src/test.o -llibws2_32.a /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -llibws2_32.a collect2: ld returned 1 exit status make: *** [Filesharing_core.dll] Error 1
首先,cygwin通常会使用GCC作为编译器。 这意味着在VS编译器和编辑器中没有特别的Windows支持。 准备好让你的手变脏。
请记住,我的CDT版本有点旧,我没有安装Cygwin,所以下面的一些内容可能不准确。 我提到的所有编译器选项都在gcc手册中有详细介绍。
1)在你的示例中,没有人定义WIN32或_WIN32 (我不认为GCC会为你做这件事,但要做检查)。 为了解决这个问题,你必须包含windows.h头文件(我认为)将会负责定义正确的宏。 你也可以使用-D编译器开关(可以在makefile或者eclipse菜单中配置)。
如果您修复了定义后遇到缺少的包含错误,我相信Windows头文件位于C:\cygwin\usr\include\w32api文件夹中。 要将其添加到包含路径中,只需打开项目属性并导航到C/C++ General > Paths and Symbols 。 在“ Includes选项卡中将路径添加到GNU C组。 取决于你如何配置你的项目,这可能已经为你完成。
如果您正在构建自己的makefile,则仍然应该执行上一步,因为它将允许索引器查找并解析这些头文件。 要告诉编译器关于include文件夹,请使用-I开关。
2)我将猜测ws2_32.lib是winsock2的lib文件。 如果是这样,我不完全确定谁负责构建它(是否有一个.dll你可以使用呢?)。 您可能想要检查您的c:\cygwin\usr\lib文件夹或c:\cygwin\usr\local\lib 。
如果您正在使用托管项目(eclipse为您生成makefile),请转到您的项目属性并导航到C/C++ Build > Settings 。 在“ Tool Settings选项卡中,转至链接器部分中的libraries项目。 只需在相应的框中添加lib文件的名称和文件夹即可。
在你自己的makefile中,你需要使用-l编译器开关来指定一个库, -L编译器开关指定一个搜索路径。
3) makefile入门的好地方是GNU make手册 。
有关在Windows上运行Makefile的一个细节:确保使用Cygwin或MinGW提供的shell。 否则,像rm这样的命令将不会被定义,它会让你的生活变得非常困难。
你也可以考虑CMake 。 更大型的项目更容易使用和扩展。
要在您的项目中使用手工makefile,只需创建一个新的Makefile project并将您的Makefile文件转储到项目文件夹的根目录下。 而已。
4)是的,但不是所谓的intellisense。 只需在源代码中的任意位置点击CTRL+Space即可启动它。
其他有趣的工具可以在右键菜单中找到。 我个人的最爱包括CTRL+SHIFT+R查找和打开一个文件, CTRL+SHIFT+T找到并打开一个类型\变量\函数\定义和CTRL+O找到并得到一个类型\变量\函数\定义打开的文件。
索引器有时可能会有点疯狂(主要是在解析C ++代码时)。 您可以通过在顶部的Windows > Preferences菜单中导航到C/C++ > Indexer项目来修改其行为。
我希望这有帮助。