2011-09-30 38 views
5

Ba phần câu hỏi đầu tiên:Macros cho Build Commands và Properties trong Visual Studio 11

  1. Are macro build-time đầy đủ fleshed ra trong Visual Studio 11?
  2. Làm cách nào để chỉnh sửa & xác định chúng trong IDE?
  3. Làm cách nào để cho phép macro vẫn có ý nghĩa trong phiên gỡ lỗi?

Lưu ý rằng tôi đang đề cập đến build-time macros như $(ProjectDir), không phải là macro IDE sử dụng để ghi lại một loạt các tổ hợp phím - họ took those away, nhưng tôi có thể sống mà không có chúng. Tôi đã xác định các macro thời gian xây dựng của riêng mình thông qua các trang thuộc tính trong Visual Studio 10. Ví dụ, tôi có thể tạo macro để xác định vị trí Boost được cài đặt trên máy tính cục bộ của tôi có tên $(BoostDir) trong x64 xây dựng qua Chế độ xem> Trình quản lý thuộc tính> Microsoft.Cpp.x64.user:

macro definitions in VS10

tôi sử dụng chức năng này bởi vì tôi có thể có (ví dụ) Boost được cài đặt tại các địa điểm khác nhau trên máy tính khác nhau. Các thuộc tính này là máy cụ thể và không được kiểm tra trong điều khiển nguồn. Sau đó tôi có thể sử dụng các macro này trong các thiết lập dự án được kiểm tra trong điều khiển nguồn và nó sẽ hoạt động trên mọi máy tôi biên dịch dự án này miễn là tôi đã xác định các macro cho máy đó.

enter image description here

Trong cố gắng để biên dịch & chạy dự án VS10 của tôi trong Visual Studio 11 Developer Preview, tôi đang chạy vào một vài vấn đề liên quan đến các macro với.

Đầu tiên, trong VS11, dường như không có giao diện để xác định các macro do người dùng xác định này. Nơi họ ở VS10, hiện nay chỉ là không có gì trong VS11:

enter image description here

Dường như các macro vẫn tồn tại ở một mức độ nào trong trình biên dịch/IDE, bởi vì tôi có thể biên dịch dự án của tôi mà không có lỗi, mà tôi sẽ không thể làm nếu các macro này không tồn tại ở đâu đó.

Thứ hai, trong khi các macro dường như tồn tại trong quá trình xây dựng, chúng dường như không tồn tại trong phiên Gỡ lỗi. Macros tôi sử dụng để giải quyết các thư mục nơi nào đó DLL tồn tại trong VS10 tại không giải quyết được những thư mục trong VS11, và tôi nhận được lỗi run-time:

enter image description here

Thư mục nơi DLL này nằm được định nghĩa ở đây trong VS10 và VS11:

enter image description here

... nhưng macro của tôi dường như không có ý nghĩa gì trong phiên debug.

Làm cách nào để có được tất cả các chức năng liên quan đến macro mà tôi phụ thuộc vào trong VS10 trong VS11?

Trả lời

1

Nếu bạn chưa biết cách thực hiện việc này, bạn cần sử dụng trang thuộc tính của riêng bạn.

Tạo trang thuộc tính mới và sử dụng phần trong Thuộc tính chung> Macro người dùng.

Ví dụ, tôi có một macro gọi BOOST_VER trong một tờ tài sản được gọi IncludeBoost.props mà tôi đặt tất cả mọi thứ trong.

User Macros 
Name  Value 
BOOST_VER 1.49.0 

C/C++ > General > Additional Include Directories > 
"$(environment variable)\3rdParty\Boost_$(BOOST_VER)\Boost";%(AdditionalIncludeDirectories) 

C/C++ > Preprocessor > Preprocessor Definitions > 
BOOST_ALL_DYN_LINK;%(PreprocessorDefinitions) 

Linker > General 
$(env var)\3rdParty\Boost_$(BOOST_VER)\Boost\lib\$(Platform);%(AdditionalLibraryDirectories) 

Lưu ý rằng nền tảng thích hợp được chọn quá (Win32 hoặc x64).

BTW, Trình quản lý thuộc tính hỗ trợ Ctrl + nhấp vào nhiều lựa chọn.

HTH.

0

Microsoft.Cpp.x64.user.props, mà tôi nghĩ là những gì bạn đã chỉnh sửa, nằm trong% blah% \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 của tôi.Tôi đoán là VS11 không sử dụng cái này cho cài đặt xây dựng. Những gì bạn thực sự cần làm là tạo ra property sheet của riêng bạn để sử dụng với các dự án của bạn.

Các vấn đề liên quan