- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是这个广阔的编程世界的新手。我得到了一些 C 代码,这些代码是使用 makefile 编译和链接的。我可以使用 VS2005 中的 nmake 编译代码。现在我想在 C++ VS2005 IDE 中构建程序。通过Google快速搜索,似乎没有将makefile设置导入VS IDE的自动化功能。
我尝试将 makefile 中规定的所有必要的依赖项(头文件和 lib 文件)包含到 VS,但出现很多链接错误。我什至不知道从哪里开始寻找解决问题的方法。希望各位高手能够帮助我。
这是makefile内容:
BASE = ..\..
!include $(BASE)\compiler.mak
!include $(BASE)\options.mak
CFLAGS =
# Define the string used in the executable file name
STACK_DEF = $(TCP_DEF)
!ifdef TCP_DEF
STACKS = tcp
!endif
CDEFS = $(STACK_DEF) $(AUTH_DEF) $(CLIENT_DEF) $(FILESERVICE_DEF)
TARGET = $(STACKS)$(NAMETAG).$(EXESUFFIX)
GOMDIR = $(BASE)\src\classlib
DIRMAKE = $(BASE)\src\make7
LIBDIR = $(BASE)\lib
OBJDIR = obj_$(NAMETAG)
EXEDIR = $(BASE)\exes
USERINC = $(BASE)\include
# These libraries are always included
TAMLIB = $(LIBDIR)\tam_$(NAMETAG).lib
TAMCLIB = $(LIBDIR)\tamc_$(NAMETAG).lib
MMSLIB = $(LIBDIR)\mmsc_$(NAMETAG).lib
# Optional libraries
!ifdef FILESERVICE_DEF
FILELIB = $(LIBDIR)\file_$(NAMETAG).lib
!endif
!ifdef TCP_DEF
TCPLIB = $(LIBDIR)\1006_$(NAMETAG).lib
TCPINC = $(USERINC)\rfc1006.h
!endif
!ifdef CLIENT_DEF
CLILIB = $(LIBDIR)\cli_$(NAMETAG).lib
TCLILIB = $(LIBDIR)\tcli_$(NAMETAG).lib
CLIINC = $(USERINC)\cliapi.h $(USERINC)\cli_cfg.h
!endif
SCLLIB = $(LIBDIR)\cscl_$(NAMETAG).lib
LIBS = $(TCPLIB) $(TCLILIB) $(CLILIB) \
$(TAMLIB) $(TAMCLIB) $(MMSLIB) $(FILELIB) $(SCLLIB)
INCLUDES = $(TCPINC) $(CLIINC)
CC = $(COMPILER)
INCFLAGS = /I$(DIRMAKE) /I$(USERINC)
SRC = conmain.c \
state.c \
scl_cli.c
OBJ = $(OBJDIR)\$(STACKS)main.$(OBJSUFFIX) \
$(OBJDIR)\state.$(OBJSUFFIX) \
$(OBJDIR)\scl_cli.$(OBJSUFFIX)
all: $(TARGET)
install: all
clean:
$(DELETE) $(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
$(DELETE) $(OBJDIR)\state.$(OBJSUFFIX)
$(DELETE) $(OBJDIR)\scl_cli.$(OBJSUFFIX)
$(DELETE) $(TARGET)
clobber: clean
$(TARGET): $(OBJ) $(LIBS)
$(LINK) $(LINKOUT)$(TARGET) @<<
$(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
$(OBJDIR)\state.$(OBJSUFFIX)
$(OBJDIR)\scl_cli.$(OBJSUFFIX)
$(LIBS)
$(WINDIS) $(SOCKLIB) $(REGLIB)
<<NOKEEP
$(OBJDIR)\$(STACKS)main.$(OBJSUFFIX): \
conmain.c \
database.h \
services.h \
scl_cli.h \
$(USERINC)\uca_time.h \
$(DIRMAKE)\tamvend.h \
$(USERINC)\tam.h \
$(USERINC)\tam_tp.h \
$(USERINC)\tam_con.h \
$(USERINC)\casm.h \
$(DIRMAKE)\clivend.h \
$(USERINC)\cliapi.h \
$(DIRMAKE)\mmsdapi.h $(INCLUDES)
$(CC) $(INCFLAGS) $(CFLAGS) @<<
$(CDEFS)
$(COMPOUT)$(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
conmain.c
<<NOKEEP
$(OBJDIR)\scl_cli.$(OBJSUFFIX): \
scl_cli.c \
scl_cli.h \
database.h \
services.h \
$(USERINC)\uca_time.h \
$(DIRMAKE)\tamvend.h \
$(USERINC)\tam.h \
$(USERINC)\tam_tp.h \
$(USERINC)\tam_con.h \
$(USERINC)\casm.h \
$(DIRMAKE)\clivend.h \
$(USERINC)\cliapi.h \
$(DIRMAKE)\mmsdapi.h $(INCLUDES)
$(CC) $(INCFLAGS) $(CFLAGS) @<<
$(CDEFS)
$(COMPOUT)$(OBJDIR)\scl_cli.$(OBJSUFFIX)
scl_cli.c
<<NOKEEP
$(OBJDIR)\state.$(OBJSUFFIX): \
state.c \
scl_cli.h \
database.h \
services.h \
$(USERINC)\uca_time.h \
$(DIRMAKE)\tamvend.h \
$(USERINC)\tam.h \
$(USERINC)\tam_tp.h \
$(USERINC)\tam_con.h \
$(USERINC)\casm.h \
$(DIRMAKE)\clivend.h \
$(USERINC)\cliapi.h \
$(DIRMAKE)\mmsdapi.h $(INCLUDES)
$(CC) $(INCFLAGS) $(CFLAGS) @<<
$(CDEFS)
$(COMPOUT)$(OBJDIR)\state.$(OBJSUFFIX)
state.c
<<NOKEEP
在 VS 中我已经:
[1] 新建一个空项目
[2] 添加现有源(c 文件和头文件)
[3] 其他包含目录:..../include 和 ..../src/make7
[4] 其他库目录:..../lib
[5] 构建项目...
尝试构建后,VS 输出出现 74 个链接器错误。全部都是 Unresolved external symbol 错误示例:
scl_cli.obj : error LNK2019: unresolved external symbol _TAM_parse_address referenced in function _ResolveServerAddressscl_cli.obj : error LNK2019: unresolved external symbol _TAM_parse_address referenced in function _ResolveServerAddress
conmain.obj : error LNK2001: unresolved external symbol _MMSd_freeDsMemFunction
我以前没有处理过 makefile。如果这篇文章听起来非常新手风格和业余风格,我深表歉意。我是新人,但我愿意学习。
非常感谢任何建议和评论。
jjplaw
最佳答案
如果我是您,在 IDE 中迁移构建之前我会三思而后行。我知道这对您来说似乎更舒服,但内置的构 build 施确实有限。
Visual Studio 的内置构建系统无法扩展!当你的项目达到一定规模时,它就会成为比其他任何事情都更大的障碍。 Microsoft 认识到这一事实,目前正在插入名为 MSBuild 的替代方案。
当您的解决方案包含超过 80 个不同的子项目时,请尝试修改编译选项...这是一次鼠标点击,乏味且容易出错...
此时您将有以下选项:
这些是 make 变体(构建由 Makefile 或类似文件驱动):
这些是 ant 变体(构建由 xml 描述而不是 makefile 驱动):
无论如何,请记住,在 IDE 之外进行编译不会阻止您使用它进行编辑、调试(调试器很好)等等!
关于您的问题,您忘记添加以下摘录中列出的库:
TAMLIB = $(LIBDIR)\tam_$(NAMETAG).lib
TAMCLIB = $(LIBDIR)\tamc_$(NAMETAG).lib
MMSLIB = $(LIBDIR)\mmsc_$(NAMETAG).lib
关于c++ - 将 Makefile 设置导入 VS2005 IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067594/
我正在寻找一个编辑器/IDE,它可以为不是专门为它构建的语言提供在编码时很好的功能(例如:能够点击到函数定义)。通过这些,我想到了为非常特定的目的而设计的语言,并且通常只被一个小社区使用。换句话说,那
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
有简单的解释性编程语言,实际上还有控制台 interpreter.exe。 需要按 F5 对语法进行着色、自动完成和执行。 (如果有可能进行“调试”——那就太棒了!) 我从来没有做过这样的事情。 有许
我只是想知道是否有任何可以在我的黑莓上运行的 IDE。我的旧 Palm 有 C 和 BASIC 翻译。 C 板上使用 Palm 的内置文本编辑器,但 BASIC 解释器内置了自己的简单编辑器。 黑莓或
我正在制作一个文件编辑器,并希望为我的用户提供一个不错的 IDE,可以在其中在浏览器上编辑他们的 html/css 文件。是否有任何编辑器与 TinyMCE 类似,但它不是一个所见即所得的编辑器,它更
是否有一个带有集成调试器的D IDE? 最佳答案 Descent可以使用调试器。不完全是您的要求,但是... 关于ide - 是否有一个带有集成调试器的D IDE?,我们在Stack Overflow
每个程序员都知道工具很重要,对于开发人员来说,没有比用于编码的 IDE 更重要的工具了。在过去的几年里,IDE-s 成为标准,在这个领域看到创新并不常见。您可以推荐哪些 IDE 具有创新性,它们引入了
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我目前正在学习Ironpython和热爱软件,但我希望从使用notepad ++和cmd.exe继续前进,并尝试使用果汁多一点的东西。 我最近了解到Iron python studio不支持Iron
我主要从事 Java 和 C/C++ 开发,但我开始做更多的 Web 开发(PHP、Rails)和 Eiffel(学习一门新语言总是好的)。 目前,我使用 Eclipse for Java、C/C++
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
是否有 280Atlas (280atlas.com)(免费/商业)的替代品? 其中哪些是成熟的? 最佳答案 您可以使用 nib2cib ,这几乎是相同的想法,但它使用界面构建器(xcode的一部分)
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
IDE 的目标是提高生产力。他们在这方面做得很好。重构、导航、内联文档、自动完成有助于极大地提高生产力。 但是:每个工具都是武器 .相同的 IDE 有助于生成块代码。一些 IDE 功能会导致产生不良代
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在寻找一些功能强大的C / C ++编程环境。实际上,我唯一需要的就是强大的源导航+创建工具。免费或商业都无所谓。我更喜欢一些linux工具,但是它不一定是必需的linux应用。 我需要的是一种具
我刚开始学习 D。有人知 Prop 有自动格式化功能的 D IDE 吗? Eclipse 的 DDT 似乎除了语法高亮之外没有任何其他功能。 最佳答案 我相信,目前 MonoDevelop + Mon
我有兴趣为一个副项目构建一个新风格的 IDE。主要是为了取消类固醇IDE上的普通记事本。我正在为已经尝试过的或者你已经看到(或没有看到)看起来很酷并且在 IDE 中有用的东西寻找一些灵感。我可以解决的
我需要维护一些 VB6 应用程序,并且在涉及枚举名称时遇到了一个奇怪的问题。 VB6 中的 Intellisense 应该工作的方式是,如果我的变量名称被定义为,例如,Dim Abraxis as S
正如标题所说,我看到很多编辑将宏录制作为一项功能吹捧,但自己却找不到利用这些功能的方法。那你能用它做什么呢?您可以记录鼠标移动和/或击键的类型?对外面的人真的那么有帮助吗?具体来说,我处理的 Ecli
我是一名优秀的程序员,十分优秀!